日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
技術(shù)分享如何創(chuàng)建Perl線程

本文和大家重點(diǎn)討論一下Perl線程概念及創(chuàng)建過程,Perl線程是一個單一的執(zhí)行流程,它是所有程序執(zhí)行過程中最小的控制單位,即能被CPU所調(diào)度的最小任務(wù)單元。

Perl線程簡介

Perl線程是一個單一的執(zhí)行流程,它是所有程序執(zhí)行過程中最小的控制單位,即能被CPU所調(diào)度的最小任務(wù)單元。Perl線程與進(jìn)程之間既有聯(lián)系,又完全不同。簡單地說,一個Perl線程必然屬于某一個進(jìn)程,而一個進(jìn)程包含至少一個或者多個Perl線程。早期的計算機(jī)系統(tǒng)一次只能運(yùn)行一個程序,因此,當(dāng)有多個程序需要執(zhí)行的時候,唯一的辦法就是讓它們排成隊,按順序串行執(zhí)行。進(jìn)程的出現(xiàn)打破了這種格局,CPU資源按時間片被分割開來,分配給不同的進(jìn)程使用。

這樣一來,從微觀上看進(jìn)程的執(zhí)行雖然仍是串行的,但是從宏觀上看,不同的程序已經(jīng)是在并行執(zhí)行了。如果我們把同樣的思想運(yùn)用到進(jìn)程上,很自然地就會把進(jìn)程再細(xì)分成更小的執(zhí)行單位,即Perl線程。由于一個進(jìn)程又往往需要同時執(zhí)行多個類似的任務(wù),因此這些被細(xì)分的Perl線程之間可以共享相同的代碼段,數(shù)據(jù)段和文件句柄等資源。有了進(jìn)程,我們可以在一臺單CPU計算機(jī)系統(tǒng)上同時運(yùn)行Firefox和MicrosoftOfficeWord等多個程序;有了Perl線程,我們可以使Firefox在不同的標(biāo)簽里同時加載多個不同的頁面,在OfficeWord里編輯文檔的同時進(jìn)行語法錯誤檢查。因此,Perl線程給我們帶來了更高的CPU利用率、更快速的程序響應(yīng)、更經(jīng)濟(jì)地資源使用方式和對多CPU的體系結(jié)構(gòu)更良好的適應(yīng)性。

Perl線程的生命周期

創(chuàng)建Perl線程

Perl線程作為Perl中的一種實(shí)體,其一生可以粗略的分為創(chuàng)建,運(yùn)行與退出這三個階段。創(chuàng)建使得Perl線程從無到有,運(yùn)行則是Perl線程完成其主要工作的階段,退出自然就是指Perl線程的消亡。Perl線程的運(yùn)行和普通函數(shù)的執(zhí)行非常類似,有其入口參數(shù),一段特定的代碼流程以及執(zhí)行完畢后返回的一個或一組結(jié)果,唯一與普通函數(shù)調(diào)用的不同之處就在于新建Perl線程的執(zhí)行與當(dāng)前Perl線程的執(zhí)行是并行的。

Perl里創(chuàng)建一個新的Perl線程非常簡單,主要有兩種方法,他們分別是:

使用threads包的create()方法,例如

清單3.通過create()方法創(chuàng)建Perl線程
 

 
 
 
  1. usethreads;  
  2.  
  3. subsay_hello  
  4. {  
  5. printf("Hellothread!@_.\n");  
  6. return(rand(10));  
  7. }  
  8.  
  9. my$t1=threads->create(\&say_hello,"param1","param2");  
  10. my$t2=threads->create("say_hello","param3","param4");  
  11. my$t3=threads->create(  
  12. sub{  
  13. printf("Hellothread!@_\n");  
  14. return(rand(10));  
  15. },  
  16. "param5",  
  17. "param6");  
  18.  

 使用async{}塊創(chuàng)建Perl線程,例如

清單4.通過async{}塊創(chuàng)建Perl線程
 

 
 
 
  1. #!/usr/bin/perl  
  2. #  
  3. usethreads;  
  4.  
  5. my$t4=async{  
  6. printf("Hellothread!\n");  
  7. };  

網(wǎng)頁題目:技術(shù)分享如何創(chuàng)建Perl線程
文章路徑:http://www.dlmjj.cn/article/dpjeide.html