项目开发中为什么需要使用线程池???我们先从开启线程的几种方式进行比较,然后得出为什么需要使用线程池来进行开发??最后对线程池做一个简单的介绍
1:异步
在我们后来的开发中有很多异步场景,为了提高系统的吞吐量和运行时间,我们要做一些异步任务;异步我们都是使用Java里面的Thread开启线程的任务方式
异步和同步区别:
- 同步和异步的概念对于很多人来说是一个模糊的概念,是一种似乎只能意会不能言传的东西。其实我们的生活中存在着很多同步异步的例子。比如:你叫我去吃饭,我听到了就立刻和你去吃饭,如果我们有听到,你就会一直叫我,直到我听见和你一起去吃饭,这个过程叫同步;异步过程指你叫我去吃饭,然后你就去吃饭了,而不管我是否和你一起去吃饭。而我得到消息后可能立即就走,也可能过段时间再走。如果我请你吃饭,就是同步,如果你请我吃饭就用异步,这样你比较省钱。
- 继承Thread
public static void main(String[] args) throws ExecutionException, InterruptedException {
System.out.println("main。。。。start..");
Thread01 thread01 = new Thread01();
thread01.start();
public static class Thread01 extends Thread{
System.out.println("main。。。。end..");
}
@Override
public void run(){
System.out.println("当前线程:"+Thread.currentThread().getId());
int i=10/2;
System.out.println("运行结果:"+i);
}
}
- 实现runnable接口
public static void main(String[] args) throws ExecutionException, InterruptedException {
System.out.println("main。。。。start..");
Thread02 thread02=new Thread02();
new Thread(thread02