介绍
怎么在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中对多线程进行排序