public class CreateThread {
public static void main(String[] args) {
Thread thread1 = new Thread("通过重写run()方法") {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
};
thread1.start();
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
};
Thread thread2 = new Thread(runnable, "通过传递Runnable");
thread2.start();
FutureTask<Integer> futureTask = new FutureTask<Integer>(new Callable<Integer>() {
@Override
public Integer call() throws Exception {
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return 200;
}
});
Thread thread3 = new Thread(futureTask, "通过FutureTask创建带有返回值的任务");
thread3.start();
try {
int res = futureTask.get();
System.out.println(res);
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
网友评论