目的
在业务代码中,需要某一部分代码与主线程分离,即一部分的操作将交给另一个线程去完成,主线程中的代码继续向下执行。也就是所说的异步操作
方式示例
- 在某方法的内部
// ------其他业务代码
Thread thread = new Thread(() -> doAnotherThings());
thread.start();
// start 后主线程将继续向下执行,不会等待 thread 中的其他业务代码的完成
// ------继续其他业务代码
doAnotherThings 为你定义的其他方法,内部包含要异步完成的业务内容
- 可以使用 Service 的方式
Thread thread = new Thread(() ->xxxxxService.xxxxxxx(xxxxx参数));
thread.start();
以上代码均使用了 lambda 的方式书写 且只有一句所以没有携带 { }一般的写法可以如下
Thread thread = new Thread(()->{
// 需要异步的操作
});
thread.start();
- 以及匿名写法
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// 需要异步的操作
}
});
thread.start();
适用范围
当不需要线程池来处理多个或者大量请求时,或者只需要做简单的异步操作时,可以采用,一般的线程池或者 和 futrue 用在较多数据同时处理或者必将影响性能的地方。
具体多线程的一般用法可以参考:
Java专题 线程池 newFixedThreadPool 创建并接收处理返回值的示例