关于线程的创建方式,线程池的作用
线程的创建方式:
1、线程继承Thread类,通过该对象的start()方法启动线程
2、线程实现Runnable接口,通过往Thread类构造传入Runnable对象,thread.start()启动线程。
3、线程实现Callable接口。Callable相当于run方法有返回值的Runnable,与Future结合使用(接收返回值使用Future)。
使用过的例子:
package thread; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /** * @author zhen * @Date 2018/11/14 10:43 */ public class TestThread { public static void main(String[] args) throws ExecutionException, InterruptedException { FutureTask<String> future = new FutureTask<>(new T3()); new Thread(future).start(); if (future.get() != ""){ System.out.println(future.get()); } } } class T1 extends Thread{ @Override public void run() { System.out.println(1); } } class T2 implements Runnable{ @Override public void run() { } } class T3 implements Callable<String>{ @Override public String call() throws Exception { return "hello"; } }
线程池的使用,为什么使用线程池?
复用线程,使用工作队列,避免无限制创建线程。重用线程降低开销,请求到达时,线程已存在,减少创建线程的等待时间,提高响应性。