欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基于fork/koin類實現(xiàn)并發(fā)排序

 更新時間:2020年02月25日 10:58:29   作者:---WeiGeH  
這篇文章主要介紹了Java基于fork/koin類實現(xiàn)并發(fā)排序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

概述

主要談一談 Java使用fork/koin類 實現(xiàn)的并發(fā)排序 以及對于Stream流的支持的splitetor

  • mismatch() -> 尋找兩個數(shù)組 第一次出現(xiàn)數(shù)據(jù)不一致的下標
  • parallelPrefix() -> 對數(shù)組進行,累加求和
  • parallelSetAll() -> 對數(shù)組進行置數(shù),
  • parallelSort() -> 并行排序
  • Spliterator() -> 對數(shù)組進行切分(切分后的數(shù)據(jù)為所有的數(shù)據(jù)的組合)

奇數(shù) x/2+1 11->6

偶數(shù) x/2 10 ==>5

public class Use_Arrays {
   
  @Test
  public void test_mismatch() {
    int []x =new int[] {1,2,3,4};
    int []y =new int[] {1,3,4,5};
    int index = Arrays.mismatch(x, y);
    System.out.println(index);
  }
  
  @Test
  public void test_parallelPrefix() {
    int []x =new int[] {1,2,3,4};
    //f2=f1+f2
    //f3=f2+f3
    Arrays.parallelPrefix(x, (k,v)->k+v);
    System.out.println(Arrays.toString(x));
    
    // 實現(xiàn)1-100累加求和
    int []y =new int[100];
    Arrays.parallelSetAll(y, k->k=1);
    Arrays.parallelPrefix(y, (k,v)->k+v);
    System.out.println(Arrays.toString(y));
    
  }
  @Test
  public void test_parallelSetAll() {
    int []x =new int[100];
    x[0]=1;
    Arrays.parallelSetAll(x, y->y+1);
    System.out.println(Arrays.toString(x));
  }
  
  @Test
  public void test_parallSort() {
     IntStream stream = new Random().ints(0, 1000).limit(1000);
     int[] array = stream.toArray();
     System.out.println(Arrays.toString(array));
     Arrays.parallelSort(array);
     System.out.println(Arrays.toString(array));
  }
  
  @Test
  public void test_spliterator() {
    int []x =new int[11];
    Arrays.parallelSetAll(x, k->k+=1);
    System.out.println(Arrays.toString(x));
    
    Spliterator.OfInt int0_100 = Arrays.spliterator(x);
    
    int [] y=new int[(int) int0_100.estimateSize()];
    int i=0;
    System.out.println(int0_100.estimateSize());
    System.out.println(int0_100.characteristics());
    System.out.println(int0_100.getExactSizeIfKnown());
    
    //spliterator.forEachRemaining((int k)->System.out.println(k));
    
    OfInt int1_50 = int0_100.trySplit();
    OfInt int2_25 = int1_50.trySplit();
    int0_100.forEachRemaining((int k)->System.out.print(k+" "));
    System.out.println();
    int1_50.forEachRemaining((int k)->System.out.print(k+" "));
    System.out.println();
    int2_25.forEachRemaining((int k)->System.out.print(k+" "));
  }
}

2:使用Spliterator實現(xiàn)并行輸出

@Test
  public void definied_Sort() {
     IntStream stream = new Random().ints(0, 100).limit(100);
     int[] array = stream.toArray();
     Arrays.sort(array);
     final int NUMS=3;// 切分的次數(shù)
     
     ExecutorService thread_pool = Executors.newFixedThreadPool(10);
     
     Spliterator.OfInt cut1 = Arrays.spliterator(array);
     while(!thread_pool.isTerminated()) {
       thread_pool.submit(()->{
          OfInt split = cut1.trySplit();
           thread_pool.shutdown();
         split.forEachRemaining((int k)->System.out.print(k+" "));
         System.out.println();
       });
     }
  }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于java枚舉類綜合應(yīng)用的說明

    基于java枚舉類綜合應(yīng)用的說明

    一個枚舉類,可以看成包括它的一些子類(枚舉)的一個類,而且枚舉類的構(gòu)造方法只能是私有的
    2013-05-05
  • 詳解Java中final的用法

    詳解Java中final的用法

    本文主要介紹了Java中final的使用方法,final是java的關(guān)鍵字,本文就詳細說明一下它的使用方法,需要的朋友可以參考下
    2015-08-08
  • Spring啟動時實現(xiàn)初始化有哪些方式?

    Spring啟動時實現(xiàn)初始化有哪些方式?

    今天給大家?guī)淼奈恼率顷P(guān)于Spring的相關(guān)知識,文章圍繞著Spring啟動時實現(xiàn)初始化有哪些方式展開,文中有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • IDEA搭建多模塊的Maven項目方式(相互依賴)

    IDEA搭建多模塊的Maven項目方式(相互依賴)

    這篇文章主要介紹了IDEA搭建多模塊的Maven項目方式(相互依賴),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解SpringBoot+Mybatis實現(xiàn)動態(tài)數(shù)據(jù)源切換

    詳解SpringBoot+Mybatis實現(xiàn)動態(tài)數(shù)據(jù)源切換

    這篇文章主要介紹了詳解SpringBoot+Mybatis實現(xiàn)動態(tài)數(shù)據(jù)源切換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Spring @Profile注解詳解

    Spring @Profile注解詳解

    這篇文章主要介紹了Spring @Profile注解詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 完美解決java double數(shù)相加和相減的方案

    完美解決java double數(shù)相加和相減的方案

    這篇文章主要介紹了完美解決java double數(shù)相加和相減的方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Mybatis Properties 配置優(yōu)先級詳解

    Mybatis Properties 配置優(yōu)先級詳解

    這篇文章主要介紹了Mybatis Properties 配置優(yōu)先級,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 一篇文章帶你了解java泛型--泛型類,泛型方法,泛型接口

    一篇文章帶你了解java泛型--泛型類,泛型方法,泛型接口

    這篇文章主要介紹了java泛型基礎(chǔ)知識及通用方法,從以下幾個方面介紹一下java的泛型: 基礎(chǔ), 泛型關(guān)鍵字, 泛型方法, 泛型類和接口,感興趣的可以了解一下
    2021-08-08
  • java interface的兩個經(jīng)典用法

    java interface的兩個經(jīng)典用法

    這篇文章主要為大家詳細介紹了java interface的兩個經(jīng)典用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論