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

追蹤調(diào)查 看Perl線程如何消亡

開(kāi)發(fā) 架構(gòu)
你對(duì)Perl線程的消亡的概念是否熟悉,大多數(shù)情況下,你希望你創(chuàng)建的Perl線程正常退出,這就意味著Perl線程所對(duì)應(yīng)的函數(shù)體在執(zhí)行完畢后返回并釋放資源。

本文和大家重點(diǎn)討論一下Perl線程的消亡的概念,如果想讓Perl線程正常退出,這就意味著Perl線程所對(duì)應(yīng)的函數(shù)體在執(zhí)行完畢后返回并釋放資源。

Perl線程的消亡

大多數(shù)情況下,你希望你創(chuàng)建的Perl線程正常退出,這就意味著Perl線程所對(duì)應(yīng)的函數(shù)體在執(zhí)行完畢后返回并釋放資源。例如在清單5的示例中,新建Perl線程被join以后的退出過(guò)程??墒?,如果由于detach不當(dāng)或者由于主線因某些意外的異常提前結(jié)束了,盡管它所創(chuàng)建的Perl線程可能尚未執(zhí)行完畢,但是他們還是會(huì)被強(qiáng)制中止,正所謂皮之不存,毛將焉附。這時(shí)你也許會(huì)得到一個(gè)類似于“Perlexitedwithactivethreads”的警告。

當(dāng)然,你也可以顯示地調(diào)用exit()方法來(lái)結(jié)束一個(gè)Perl線程,不過(guò)值得注意的是,默認(rèn)情況下,如果你在一個(gè)Perl線程中調(diào)用了exit()方法,其他Perl線程都會(huì)隨之一起結(jié)束,在很多情況下,這也許不是你想要的,如果你希望exit()方法只在調(diào)用它的Perl線程內(nèi)生效,那么你在創(chuàng)建該P(yáng)erl線程的時(shí)候就需要設(shè)置’exit’=>’thread_only’。例如

清單7.為某個(gè)Perl線程設(shè)置’exit’=>’thread_only’屬性 

  1. #!/usr/bin/perl  
  2. #  
  3. usethreads;  
  4.  
  5. subsay_hello{  
  6. printf("Hellothread!@_.\n");  
  7. sleep(10);  
  8. printf("Bye\n");  
  9. }  
  10.  
  11. subquick_exit{  
  12. printf("Iwillbeexitinnotime\n");  
  13. exit(1);  
  14. }  
  15.  
  16. my$t1=threads->create(\&say_hello,"param1","param2");  
  17. my$t2=threads->create({'exit'=>'thread_only'},\&quick_exit);  
  18.  
  19. $t1->join();  
  20. $t2->join();  
  21.  

 如果你希望每個(gè)Perl線程的exit方法都只對(duì)自己有效,那么在每次創(chuàng)建一個(gè)新Perl線程的時(shí)候都去要顯式設(shè)置’exit’=>’thread_only’屬性顯然有些麻煩,你也可以在引入threads包的時(shí)候設(shè)置這個(gè)屬性在全局范圍內(nèi)有效,例如

清單8.設(shè)置’exit’=>’thread_only’為全局屬性
 

  1. usethreads('exit'=>'threads_only');  
  2.  
  3. subfunc{  
  4. ...  
  5. if($condition){  
  6. exit(1);  
  7. }  
  8. }  
  9.  
  10. my$t1=threads->create(\&func);  
  11. my$t2=threads->create(\&func);  
  12.  
  13. $t1->join();  
  14. $t2->join();  

【編輯推薦】

 

  1. 技術(shù)分享 如何創(chuàng)建Perl線程
  2. Perl文件句柄概念詳解
  3. 揭秘Perl線程歷史
  4. Perl線程的生命周期
  5. 學(xué)習(xí)筆記 Perl數(shù)字與字符串間的自動(dòng)轉(zhuǎn)換

 

責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-07-15 15:21:07

Perl線程

2011-01-28 15:30:47

AppsFireiOS原始應(yīng)用

2020-06-12 15:19:09

AI 數(shù)據(jù)人工智能

2010-07-15 14:54:50

Perl線程

2010-07-20 16:13:25

Perl線程

2018-12-19 09:15:36

SDN軟件定義網(wǎng)絡(luò)廣域網(wǎng)

2010-08-02 16:13:01

2010-07-14 10:41:58

Perl線程

2010-07-15 15:39:51

Perl線程

2010-07-26 13:27:19

Perl多線程

2011-10-25 10:07:54

2012-04-29 16:20:04

2011-10-25 09:58:01

2010-03-25 09:31:04

IT技術(shù)

2010-07-19 16:56:56

Perl線程

2010-07-14 10:48:37

Perl線程

2021-04-08 08:29:40

隱私Android谷歌

2009-02-17 19:02:33

2010-07-14 10:59:15

Perl線程

2020-05-11 19:00:54

Python 2PyCharmVS Code
點(diǎn)贊
收藏

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