3、实现Callable接口,重写call( )方法并使用FutureTask获取call( )方法的返回结果
①继承Thread类,实现睡眠排序
class SleepSort extends Thread {
private int num;
public SleepSort(int num) {
this.num = num;
}
public void run(){
try{
sleep(num*10);
}catch (Exception e){
e.printStackTrace();
}
System.out.print(num+" ");
}
public static void main(String[] args) {
int nums[]={56,41,75,84,91,14,7,64,32};
for (int num : nums) {
SleepSort thread = new SleepSort(num);
thread.start();
}
}
}
②实现Runnable接口,实现睡眠排序
public class SleepSort implements Runnable {
private int num;
public SleepSort(int num) {
this.num = num;
}
public void run() {
try{
Thread.currentThread().sleep(num*10);
}catch (Exception e){
e.printStackTrace();
}
System.out.print(num+" ");
}
public static void main(String[] args) {
int nums[]={56,41,75,84,91,14,7,64,32};
for (int num : nums) {
SleepSort mr = new SleepSort(num);
Thread t1 = new Thread(mr);
t1.start();
}
}
}
③实现Callable接口,实现睡眠排序
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class SleepSort implements Callable {
private int num;
public SleepSort(int num) {
this.num = num;
}
public Object call() throws Exception {
try {
Thread.sleep(num*10);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print(num+" ");
return "";
}
public static void main(String[] args) {
int nums[]={56,41,75,84,91,14,7,64,32};
for (int num : nums) {
SleepSort myThreadCall = new SleepSort(num);
FutureTask integerFutureTask = new FutureTask<>(myThreadCall);
new Thread(integerFutureTask).start();
}
}
}
Comments | NOTHING