public void run() {
System.out.println("test");
}
-
1 Thread及其子类创建:线程的创建、任务、启动(Thread继承了Runnable接口的run)
new Thread(){
@Override public void run() {
System.out.println("test");
}
}.start();
-
2 Runnable接口:任务的创建
new Thread(new Runnable() {
}).start();
-
3 Feture -callable(期货模式):方法的调用、执行、准备返回值、获取返回值分离(callback)------单独讲解这个组合用法-见:Feture用法 -callable用法
ThreadFactory threadFactory = new ThreadFactory() {
public Thread newThread(Runnable r) {
return new Thread(r);
}
};
ExecutorService executorService = Executors.newCachedThreadPool(threadFactory);
Future<String> callback = executorService.submit(new Callable<String>() {
public String call() throws Exception {
return "test";
}
});
try {
System.out.println(callback.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
-
4 Executor:接口,线程的创建、启动
Executor executor = new Executor() {
public void execute(Runnable command) {
new Thread(command).start();
}
};
executor.execute(new Runnable() {
public void run() {
System.out.println("test");
}
});
-
5 Executors线程池的工具类4大类
ExecutorService executorService = Executors.newCachedThreadPool(threadFactory);
executorService.execute(new Runnable() {
public void run() {
System.out.println("test");
}
});
备注:线程的start仅能执行一次,根据线程的状态图;
newCachedThreadPool 缓存
newFixedThreadPool 定数
newScheduledThreadPool 定时定数
newSingleThreadExecutor 单例
-
ThreadFactory 线程的创建(由Runnable接口和Thread实现而来)
ThreadFactory threadFactory = new ThreadFactory() {
public Thread newThread(Runnable r) {
return new Thread(r);
}
};
threadFactory.newThread(new Runnable() {
public void run() {
System.out.println("test");
}
}).start();