189 8069 5689

JAVA线程池的作用是什么?-创新互联

不懂JAVA线程池的作用是什么??其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。

创新互联是一家专注于网站设计、成都做网站与策划设计,高淳网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:高淳等地区。高淳做网站价格咨询:028-86922220

线程池的作用

我们在用一个东西的时候,首先得搞明白一个问题。这玩意是干嘛的,为啥要用这个,用别的不行吗。那么一个一个解决这些问题

我们之前都用过数据库连接池,线程池的作用和连接池有点类似,频繁的创建,销毁线程会造成大量的不必要的性能开销,所以这个时候就出现了一个东西统一的管理线程,去负责线程啥时候销毁,啥时候创建,以及维持线程的状态,当程序需要使用线程的时候,直接从线程池拿,当程序用完了之后,直接把线程放回线程池,不需要去管线程的生命周期,专心的执行业务代码就行。

当然,如果非要是自己想手动new一个线程来执行,也不是不可以,只是像上面说的那样,第一麻烦,第二开销大,第三不好控制。

控制线程的方法

在说到线程池之前,首先要提到一个创建线程池的工具类,又或者说是工厂类 Executors 通过这个线程可以统一的创建线程,返回的是一个ExecutorService 类这个类中包含了一些对线程执行过程进行管理控制的方法;

void execute(Runnable command);这个方法是将任务提交到线程池进行执行。这个方法没有返回值。

Future submit(Callable task);这个方法最特别的地方是线程执行完毕之后是有返回值的,另外方法的参数可以用Callable也可以为Runnable。可以适用于一些后续的代码,需要线程执行结果的程序。

下面的示例中,我们创建了一个 ExecutorService 的实例,提交了一个任务,然后使用返回的 Future 的 get() 方法等待提交的任务完成并返回值。

ExecutorService executorService = Executors.newFixedThreadPool(10);
 Future future = executorService.submit(() -> "Hello World");
 // 一些其它操作
 String result = future.get();

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:JAVA线程池的作用是什么?-创新互联
网页网址:http://jkwzsj.com/article/jjpjh.html

其他资讯