JAVA线程池如何定义及在程序中发挥关键作用?
- 内容介绍
- 相关推荐
本文共计2823个文字,预计阅读时间需要12分钟。
线程池的作用+我们在用一些东西的时候,首先得搞明白一个基本问题。这玩意的目的是什么?为什么不用别的?一个个解决这些问题。我们之前都用过数据库连接池,线程池也是类似。
线程池的作用
我们在用一个东西的时候,首先得搞明白一个问题。这玩意是干嘛的,为啥要用这个,用别的不行吗。那么一个一个解决这些问题
我们之前都用过数据库连接池,线程池的作用和连接池有点类似,频繁的创建,销毁线程会造成大量的不必要的性能开销,所以这个时候就出现了一个东西统一的管理线程,去负责线程啥时候销毁,啥时候创建,以及维持线程的状态,当程序需要使用线程的时候,直接从线程池拿,当程序用完了之后,直接把线程放回线程池,不需要去管线程的生命周期,专心的执行业务代码就行。
当然,如果非要是自己想手动new一个线程来执行,也不是不可以,只是像上面说的那样,第一麻烦,第二开销大,第三不好控制。
控制线程的方法
在说到线程池之前,首先要提到一个创建线程池的工具类,又或者说是工厂类 Executors 通过这个线程可以统一的创建线程,返回的是一个ExecutorService 类这个类中包含了一些对线程执行过程进行管理控制的方法;
void execute(Runnable command); 这个方法是将任务提交到线程池进行执行。这个方法没有返回值。
本文共计2823个文字,预计阅读时间需要12分钟。
线程池的作用+我们在用一些东西的时候,首先得搞明白一个基本问题。这玩意的目的是什么?为什么不用别的?一个个解决这些问题。我们之前都用过数据库连接池,线程池也是类似。
线程池的作用
我们在用一个东西的时候,首先得搞明白一个问题。这玩意是干嘛的,为啥要用这个,用别的不行吗。那么一个一个解决这些问题
我们之前都用过数据库连接池,线程池的作用和连接池有点类似,频繁的创建,销毁线程会造成大量的不必要的性能开销,所以这个时候就出现了一个东西统一的管理线程,去负责线程啥时候销毁,啥时候创建,以及维持线程的状态,当程序需要使用线程的时候,直接从线程池拿,当程序用完了之后,直接把线程放回线程池,不需要去管线程的生命周期,专心的执行业务代码就行。
当然,如果非要是自己想手动new一个线程来执行,也不是不可以,只是像上面说的那样,第一麻烦,第二开销大,第三不好控制。
控制线程的方法
在说到线程池之前,首先要提到一个创建线程池的工具类,又或者说是工厂类 Executors 通过这个线程可以统一的创建线程,返回的是一个ExecutorService 类这个类中包含了一些对线程执行过程进行管理控制的方法;
void execute(Runnable command); 这个方法是将任务提交到线程池进行执行。这个方法没有返回值。

