创建线程

108 阅读1分钟
  1. 继承Tread
Thread t = new Thread() {
    // 继承Thread并且,并Override run方法
    @Override
    public void run() {
        // 业务代码
    }
};
// 启动线程
t.start();
  1. 实现Runnable
// Runnable
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        // 业务代码
    }
};
// 把Runnable对象传入Thread构造器创建Thread
Thread t = new Thread(runnable);
// 启动线程
t.start();
  1. 实现Callable
// 实现Callable
Callable<String> callable = new Callable<String>() {
    @Override
    public String call() throws Exception {
        // 业务代码
        return "result...";
    }
};
// 使用Callable创建FutureTask
FutureTask<String> futureTask = new FutureTask<>(callable);
// 使用FutureTask创建线程
Thread t = new Thread(futureTask);
// 启动线程
t.start();
// 得到运行结果
String result = futureTask.get();
  1. 提交给ThreadPool
// 创建ThreadPool
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
        10, 10,
        0, TimeUnit.SECONDS,
        new LinkedBlockingDeque<>(5000));
// 提交任务给ThreadPool
threadPoolExecutor.submit(new Runnable() {
    @Override
    public void run() {
        // business logic
    }
});