创建线程的四种方式
- 1、继承Thread类
- 2、实现Runnable接口
- 3、实现Callable接口
- 4、使用线程池
创建线程的代码示例
public class ThreadCreate {
public static void main(String[] args) {
Thread t1 = new Thread("线程名:继承Thread类") {
@Override
public void run() {
System.out.println(super.getName());
}
};
t1.start();
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
};
Thread t2 = new Thread(runnable,"线程名:实现Runnable接口");
t2.start();
Callable<String> callable = new Callable<String>(){
@Override
public String call() throws Exception {
System.out.println(Thread.currentThread().getName());
return "我是返回值";
}
};
FutureTask<String> futureTask = new FutureTask<>(callable);
Thread t3 = new Thread(futureTask,"线程名:实现Callable接口");
t3.start();
try {
Object o = futureTask.get();
System.out.println(o);
}catch (Exception e){}
ExecutorService pool = Executors.newFixedThreadPool(2);
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
};
pool.submit(r);
Callable<String> c = new Callable<String>(){
@Override
public String call() throws Exception {
System.out.println(Thread.currentThread().getName());
return "我是返回值";
}
};
Future<String> future = pool.submit(c);
try {
Object o = future.get();
System.out.println(o);
}catch (Exception e){}
pool.shutdown();
}
}