排序原理
基本原理:主要是根据CPU的调度算法实现的,对一组数据进行排序,线程启动的时候没有固定的顺序,但是可以对每个线程设置不同的睡眠时间,从而到达每个线程输出顺序不一样的
代码实现
package prodmng.songhw;
/**
* @ _ooOoo_
* o8888888o
* 88" . "88
* (| -_- |)
* O\ = /O
* ____/`---'\____
* .' \\| |// `.
* / \\||| : |||// \
* / _||||| -:- |||||- \
* | | \\\ - /// | |
* | \_| ''\---/'' | |
* \ .-\__ `-` ___/-. /
* ___`. .' /--.--\ `. . __
* ."" '< `.___\_<|>_/___.' >'"".
* | | : `- \`.;`\ _ /`;.`/ - ` : | |
* \ \ `-. \_ __\ /__ _/ .-` / /
* ======`-.____`-.___\_____/___.-`____.-'======
* `=---='
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* 佛祖保佑 永无BUG
*@DESCRIPTION ${END}
*@AUTHOR SongHongWei
*@TIME 2018/12/3-15:20
*@PACKAGE_NAME prodmng.songhw
**/
public class Sort
{
public static void main(String[] args)
{
int arr[] = {7, 5, 3, 6, 1, 4, 8, 2, 9,0};
//定义一个线程数组
SortThread[] threads = new SortThread[arr.length];
for (int i = 0; i < arr.length; i++)
{
//添加线程成员
threads[i] = new SortThread(arr[i]);
}
for (SortThread thread : threads)
{
//逐个启动线程
thread.start();
}
}
}
class SortThread extends Thread
{
private int num;
//构造方法确定睡眠时间基数
SortThread(int num)
{
this.num = num;
}
@Override
public void run()
{
try
{
//睡眠时间为基数乘以10加11,防止数字太接近,排序错误
// sleep(num * 10 + 11);
sleep(num );
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println(num);
}
}