最原始的方式,當(dāng)我們要并行的或者異步的執(zhí)行一個任務(wù)的時候,我們會直接使用啟動一個線程的方式,如下面所示:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動開發(fā)培訓(xùn)

new Thread(new Runnable() {     @Override     public void run() {         // TODO Auto-generated method stub  這里放你要執(zhí)行的方法     } }).start();

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動開發(fā)培訓(xùn)

 

  但是像上面或者類似這種每次來都是用new 一個Thread出來的方式存在著很多的弊端,如下面:

  • 每次new Thread新建對象性能差;

  • 線程缺乏統(tǒng)一的管理,可以無限制新建線程,相互之間競爭,還可能占用過多系統(tǒng)資源導(dǎo)致死機或者OOM(Out of Memory);

  • 缺乏更多的功能,如定時執(zhí)行、定期執(zhí)行、線程中斷等。

二、線程池

  為了解決這些問題,Jdk1.5之后加入了java.util.concurrent包,這個包中主要介紹java中線程以及線程池的使用。為我們在開發(fā)中處理線程的問題提供了非常大的幫助。

網(wǎng)友評論