自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java線程池如何體現(xiàn)自己的用途

開(kāi)發(fā) 后端
Java線程池如何才能更好的進(jìn)行順暢的使用。這個(gè)問(wèn)題在解決的過(guò)程中就涉及到相關(guān)的技術(shù)學(xué)校。下面我們就詳細(xì)的看看如何才能解決。

Java線程池就像數(shù)據(jù)庫(kù)連接池一樣,是一個(gè)對(duì)象池。我們?cè)谑褂玫臅r(shí)候需要不斷的學(xué)習(xí),這樣才能不斷的適應(yīng)相關(guān)語(yǔ)言技術(shù)的變化。所有的對(duì)象池都有一個(gè)共同的目的,那就是為了提高對(duì)象的使用率,從而達(dá)到提高程序效率的目的。#t#

比如對(duì)于Servlet,它被設(shè)計(jì)為多線程的(如果它是單線程的,你就可以想象,當(dāng)1000個(gè)人同時(shí)請(qǐng)求一個(gè)網(wǎng)頁(yè)時(shí),在第一個(gè)人獲得請(qǐng)求結(jié)果之前,其它999個(gè)人都在郁悶地等待),如果為每個(gè)用戶的每一次請(qǐng)求都創(chuàng)建一個(gè)新的線程對(duì)象來(lái)運(yùn)行的話,系統(tǒng)就會(huì)在創(chuàng)建線程和銷(xiāo)毀線程上耗費(fèi)很大的開(kāi)銷(xiāo),大大降低系統(tǒng)的效率。因此,Servlet多線程機(jī)制背后有一個(gè)Java線程池在支持,線程池在初始化初期就創(chuàng)建了一定數(shù)量的線程對(duì)象,通過(guò)提高對(duì)這些對(duì)象的利用率,避免高頻率地創(chuàng)建對(duì)象,從而達(dá)到提高程序的效率的目的。

下面實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的Java線程池,從中理解它的實(shí)現(xiàn)原理。為此我們定義了四個(gè)類(lèi),它們的用途及具體實(shí)現(xiàn)如下:

Task(任務(wù)):這是個(gè)代表任務(wù)的抽象類(lèi),其中定義了一個(gè)deal()方法,繼承Task抽象類(lèi)的子類(lèi)需要實(shí)現(xiàn)這個(gè)方法,并把這個(gè)任務(wù)需要完成的具體工作在deal()方法編碼實(shí)現(xiàn)。Java線程池中的線程之所以被創(chuàng)建,就是為了執(zhí)行各種各樣數(shù)量繁多的任務(wù)的,為了方便線程對(duì)任務(wù)的處理,我們需要用Task抽象類(lèi)來(lái)保證任務(wù)的具體工作統(tǒng)一放在deal()方法里來(lái)完成,這樣也使代碼更加規(guī)范。
Task的定義如下:

Java代碼

  1. public abstract class Task {   
  2. public enum State {   
  3. /* 新建 */NEW, /* 執(zhí)行中 */RUNNING, /* 已完成 */FINISHED   
  4. }   
  5. // 任務(wù)狀態(tài)   
  6. private State state = State.NEW;   
  7. public void setState(State state) {   
  8. this.state = state;   
  9. }   
  10. public State getState() {   
  11. return state;   
  12. }   
  13. public abstract void deal();   
  14. }   
  15. public abstract class Task {  
  16. public enum State {  
  17. /* 新建 */NEW, /* 執(zhí)行中 */RUNNING, /* 已完成 */FINISHED  
  18. }  
  19. // 任務(wù)狀態(tài)  
  20. private State state = State.NEW;  
  21. public void setState(State state) {  
  22. this.state = state;  
  23. }  
  24. public State getState() {  
  25. return state;  
  26. }  
  27. public abstract void deal();  

以上就是對(duì)Java線程池的相關(guān)代碼介紹。

責(zé)任編輯:張浩 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2019-09-09 09:50:27

設(shè)置Java線程池

2010-03-18 15:15:08

Java線程池

2024-10-21 18:12:14

2022-09-26 00:48:14

線程池阻塞數(shù)據(jù)

2012-05-15 02:18:31

Java線程池

2010-03-15 19:56:46

Java線程

2021-09-11 15:26:23

Java多線程線程池

2015-08-20 09:17:36

Java線程池

2023-06-08 07:48:03

Java線程池

2023-11-22 08:37:40

Java線程池

2020-09-04 10:29:47

Java線程池并發(fā)

2017-05-04 16:33:58

Java線程池實(shí)踐

2021-06-24 08:02:35

線程池Java代碼

2024-11-13 16:37:00

Java線程池

2021-11-15 10:50:52

Java線程池代碼

2012-02-29 13:26:20

Java

2010-03-17 17:37:17

Java線程返回值

2020-03-05 15:34:16

線程池C語(yǔ)言局域網(wǎng)

2012-02-01 11:20:23

Java線程

2021-07-16 11:35:20

Java線程池代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)