java线程池怎么创建_java中的线程池,如何创建?
Java中的線程池它是線程的容器,或者(換句話說,它是具有執行任務能力的線程的集合)。
我們可以使用ThreadPool框架來定位(或實現)線程池。
線程池可以包含多個線程。每當我們執行任何任務時,線程就會從線程池中出來并完成該任務,然后再次返回線程池。
如果您不使用線程池,那么...
您需要一次又一次地創建重復的線程,并且每次都會浪費內存并破壞對象,從而降低性能。如果請求數量增加/減少,那么我們需要創建更多數量的線程。
如果您使用線程池,那么...
您不需要一次又一次地創建重復的線程,也不會浪費內存,也不必每次都銷毀對象,因此性能將得到提高。
如果請求數量增加/減少,那么我們不需要創建更多線程。
示例
ThreadPool包含100個線程,請求數為200,然后將有100個請求解決第一個100個請求,然后在完成任務線程后將釋放它們并返回線程池,然后有100個線程將解決下一個100個請求。
在線程池中,我們可以討論三件事:如何創建一個ThreadPool?
如何向線程池中的線程提交任務?
如何關閉線程池?
讓我們看看如何創建線程池,ExecutorService?es?=?Executors.new?FixedThreadPool(int);
int是線程池中的線程數
讓我們看看如何使用來向線程池中的線程提交任務submit()。ExecutorServiceObject?(es)?=>?es.submit(Runnable?obj);
讓我們看看如何關閉threadPool?ExecutorServiceObject?(es)?=>?es.shutdown();
示例import?java.util.concurrent.ExecutorService;
import?java.util.concurrent.Executors;
class?ThreadPoolClass?implements?Runnable{
String?s;
ThreadPoolClass(String?str){
s?=?str;
}
public?static?void?main(String[]?args){
ExecutorService?es?=?Executors.newFixedThreadPool(1);
es.submit(new?ThreadPoolClass("First?Name:?Preeti"));
es.submit(new?ThreadPoolClass("Second?Name:?Jain"));
es.shutdown();
}
public?void?run(){
System.out.println(Thread.currentThread()+?s);
}
}
輸出結果D:\Java?Articles>java?ThreadPoolClass
Thread[pool-1-thread-1,5,main]First?Name:?Preeti
Thread[pool-1-thread-1,5,main]Second?Name:?Jain
總結
以上是生活随笔為你收集整理的java线程池怎么创建_java中的线程池,如何创建?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos忘记root用户的密码
- 下一篇: OWI