怎么在Java中对多线程进行排序

  介绍

怎么在Java中对多线程进行排序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Java的特点有哪些

Java的特点有哪些   1. java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。   2. java具有简单性,面向对象,分布式、安全性,平台独立与可移植性,动态性等特点。   3。使用Java可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序等。

<强> 1。先试一下我们不用多线程的情况,以快速排序为例

 package 进步;/*
  ,* @Author: Gnight
  ,* @Date: 2020/12/17  23:32
  ,* @Description:
  ,,,单线程的快速排序,太多数据栈会溢出
  ,*/,
  import  java.util.Arrays;
  ,
  public  class  JavaDemo  {
  ,
  ,,,public  static  int[],加勒比海盗;
  ,
  ,,,public  static  void  main (String [], args), {
  ,,,,,,,//随机生成数的值
  ,,,,,,,arr =, new  int [100];
  ,,,,,,,for  (int 小姐:=,0;,小姐:& lt;, arr.length;,我+ +),{
  ,,,,,,,,,,,arr[我],=,(int), (math . random (), *, 1000);
  ,,,,,,,}
  ,,,,,,,new  JavaDemo () .doSort (0,, arr.length 作用;1);
  ,,,,,,,for  (int  element : arr), {
  ,,,,,,,,,,,System.out.println(元素);
  ,,,,,,,}
  ,,,}
  ,
  ,,,public  void  doSort (int 低,int 高),{
  ,,,,,,,if  (low  & lt;,高),{
  ,,,,,,,,,,,int  index =,快速排序(低,高);//实际的排序流程
  ,,,,,,,,,,,doSort(低,,index 作用;1);
  ,,,,,,,,,,,doSort(时间+ index  1,高);
  ,,,,,,,}
  ,,,}
  ,
  ,,,public  int 快速排序(int 我,int  j), {
  ,,,,,,,int  key =, arr[我];//基准值
  ,,,,,,,while (小姐:& lt;, j), {
  ,,,,,,,,,,,//找出第一个右边要交换的
  ,,,,,,,,,,,while (小姐:& lt;, j ,,, arr [j],祝辞=,键),j——;
  ,,,,,,,,,,,if (小姐:& lt;, j), arr[我],=,arr [j];
  ,,,,,,,,,,,//找出第一个左边要交换的
  ,,,,,,,,,,,while (小姐:& lt;, j ,,, arr[我],& lt;=,键),我+ +;
  ,,,,,,,,,,,if (小姐:& lt;, j), arr [j],=, arr[我];
  ,,,,,,,}
  ,,,,,,,//,我==,j的情况
  ,,,,,,,arr[我],=,关键;
  ,,,,,,,return 我;
  ,,,}
  }

<强> 2。数据分段

//根据我们设立的线程数来分段
  for  (int 小姐:=,0;,小姐:& lt;, threadNum;,我+ +),{
  ,,,int [], temp =, Arrays.copyOfRange(加勒比海盗,小姐:*,arr.length /, threadNum,,
  ,,,,,,(小姐:+,- 1),*,arr.length /, threadNum);
  ,,,//theadNum就是线程数
  }
  快排线程:采用可调用的接口,可以有返回值
  package 进步;/*
  ,* @Author: Gnight
  ,* @Date: 2020/12/17 十九10
  ,* @Description:
  ,,,多线程实现快排
  ,*/,
  import  java.util.concurrent.Callable;
  import  java.util.concurrent.CountDownLatch;
  ,//快排多线程
  public  class  sortThread  implements  Callable< int[]祝辞,{
  ,
  ,,,private  int[],加勒比海盗;
  ,,,private  int 低;
  ,,,private  int 高;
  ,,,private  CountDownLatch 计算;
  ,
  ,,,public  sortThread (int[],加勒比海盗,,int 低,,int 高,CountDownLatch 计数),{
  ,,,,,,,this.arr =,加勒比海盗;
  ,,,,,,,this.low =,低;
  ,,,,,,,this.high =,高;
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

怎么在Java中对多线程进行排序