成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

追溯Perl線程的歷史

開發 架構
你對Perl線程的概念是否熟悉,Perl線程有很多值得學習的地方,這里向大家簡單介紹一下Perl線程的概念和歷史,希望你對此感興趣。

本文首先概述了Perl線程的概念和意義,接著回顧了Perl語言中對Perl線程支持的演化歷史,然后通過一系列示例重點介紹了Perl中Perl線程的實現,數據的共享以及Perl線程間的同步,***歸納并總結了全文主要內容。

Perl線程概述

Perl線程是一個單一的執行流程,它是所有程序執行過程中最小的控制單位,即能被CPU所調度的最小任務單元。Perl線程與進程之間既有聯系,又完全不同。簡單地說,一個Perl線程必然屬于某一個進程,而一個進程包含至少一個或者多個Perl線程。早期的計算機系統一次只能運行一個程序,因此,當有多個程序需要執行的時候,唯一的辦法就是讓它們排成隊,按順序串行執行。進程的出現打破了這種格局,CPU資源按時間片被分割開來,分配給不同的進程使用。這樣一來,從微觀上看進程的執行雖然仍是串行的,但是從宏觀上看,不同的程序已經是在并行執行了。如果我們把同樣的思想運用到進程上,很自然地就會把進程再細分成更小的執行單位,即Perl線程。由于一個進程又往往需要同時執行多個類似的任務,因此這些被細分的Perl線程之間可以共享相同的代碼段,數據段和文件句柄等資源。有了進程,我們可以在一臺單CPU計算機系統上同時運行Firefox和MicrosoftOfficeWord等多個程序;有了Perl線程,我們可以使Firefox在不同的標簽里同時加載多個不同的頁面,在OfficeWord里編輯文檔的同時進行語法錯誤檢查。因此,Perl線程給我們帶來了更高的CPU利用率、更快速的程序響應、更經濟地資源使用方式和對多CPU的體系結構更良好的適應性。

Perl線程的歷史

5005threadsPerl線程模型

Perl對Perl線程的支持最早可以追溯到1998年7月發布的Perlv5.005。其發布申明指出,Perlv5.005中加入了對操作系統級Perl線程的支持,這個新特性是一個實驗性的產品,這也就是我們現在所稱的5005threadsPerl線程模型。對于5005threadsPerl線程模型來說,默認情況下,所有數據結構都是共享的,所以用戶必須負責這些共享數據結構的同步訪問。如今5005threads已經不再被推薦實用,Perlv5.10以后的版本里,也將不會再支持5005threadsPerl線程模型。

ithreadsPerl線程模型

2000年5月發布的Perlv5.6.0中開始引入了一個全新的Perl線程模型,即interpreterthreads,或稱為ithreads,也正是在這個版本的發布申明中***次提出了5005threadsPerl線程模型將來可能會被禁用的問題。盡管如此,ithreads在那個時候還是一個新的實驗性的Perl線程模型,用戶并不能直接使用它,唯一的辦法是通過fork函數模擬。經過兩年時間的發展,到2002年7月,Perlv5.8.0正式發布,這時ithreads已經是一個相對成熟的Perl線程模型,發布申明中也鼓勵用戶從老的5005threadsPerl線程模型轉換到新的ithreadsPerl線程模型,并明確指出5005threadsPerl線程模型最終將被淘汰。本文后面所討論的所有內容也都是基于新的ithreadsPerl線程模型。在ithreadsPerl線程模型中,最與眾不同的特點就在于默認情況一下一切數據結構都不是共享的,這一點我們會在后面內容中有更深刻的體會。

現有環境支持哪種Perl線程模型

既然Perl中有可能存在兩種不同的Perl線程模型,我們很自然地就需要判斷現有Perl環境到底支持的是哪一種Perl線程實現方式。歸納起來,我們有兩種方法:

清單1.shell中查詢Perl當前Perl線程模型    
 

  1. >perl-V|grepuse.*threads  
  2. config_args='-des-Doptimize=-O2-g-pipe-m32-march=i386-mtune=pentium4-Dversion=5.8.5  
  3. -Dmyhostname=localhost-Dperladmin=root@localhost-Dcc=gcc-Dcf_by=RedHat,Inc.  
  4. -Dinstallprefix=/usr-Dprefix=/usr-Darchname=i386-linux-Dvendorprefix=/usr  
  5. -Dsiteprefix=/usr-Duseshrplib-Dusethreads-Duseithreads-Duselargefiles-Dd_dosuid  
  6. -Dd_semctl_semun-Di_db-Ui_ndbm-Di_gdbm-Di_shadow-Di_syslog-Dman3ext=3pm-Duseperlio  
  7. -Dinstallusrbinperl-Ubincompat5005-Uversiononly-Dpager=/usr/bin/less-isr  
  8. -Dinc_version_list=5.8.45.8.35.8.25.8.15.8.0'  
  9. usethreads=defineuse5005threads=undefuseithreads=defineusemultiplicity=define  

 從結果中不難看出,在當前的Perl環境中提供了對ithreadsPerl線程模型的支持。
在Perl程序中,我們也可以通過使用Config模塊來動態獲取Perl線程模型的相關信息,例如

清單2.Perl程序中動態獲取當前Perl線程模型    
 

  1. #!/usr/bin/perl  
  2. #  
  3. useConfig;  
  4.  
  5. if($Config{useithreads}){  
  6. printf("Helloithreads\n")  
  7. }  
  8. elsif($Config{use5005threads}){  
  9. printf("Hello5005threads\n");  
  10. }  
  11. else{  
  12. printf("Cannotsupportthreadinyourperlenvironment\n");  
  13. exit(1);  
  14. }  
  15.  

 值得一提的是,對于5005threads和ithreadsPerl線程模型,Perl同時只能支持其中的一種。你不可能在某一個Perl環境中同時使用這兩種Perl線程模型。本文后面討論的所有內容都是基于ithreadsPerl線程模型的。
 

【編輯推薦】

  1. 經驗總結 Perl的安裝配置步驟
  2. 解析Perl面向對象編程的兩種實現方式
  3. Perl二維數組用法全程剖析
  4. 淺析Perl面向對象編程用法
  5. Perl正則表達式語法解析

 

 

責任編輯:佚名 來源: ibm.com
相關推薦

2010-07-15 14:54:50

Perl線程

2010-07-19 16:17:17

Perl正則表達式

2010-07-14 10:48:37

Perl線程

2010-07-20 16:13:25

Perl線程

2010-07-15 15:39:51

Perl線程

2010-07-26 13:27:19

Perl多線程

2010-07-14 10:59:15

Perl線程

2010-07-15 15:21:07

Perl線程

2010-07-19 16:56:56

Perl線程

2010-07-14 10:30:26

Perl多線程

2010-07-26 09:45:09

Perl多進程

2010-07-13 12:50:47

Perl變量

2010-07-15 15:25:57

Perl線程

2010-07-13 14:26:11

Perl數組

2010-08-28 15:28:17

2014-04-10 10:24:00

編程語言排行榜

2021-07-02 06:34:53

Go語言sysmon

2010-07-15 15:32:10

Perl線程

2010-09-28 15:53:41

Java ME

2010-07-21 14:18:27

Perl函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品久久 | 98久久| 97精品视频在线观看 | 日韩中文字幕一区二区三区 | 国产女人与拘做视频免费 | 国产精品久久久久久久久久久免费看 | 懂色一区二区三区免费观看 | 一区二区三区免费 | 亚洲精品一区二三区不卡 | 国产精品美女久久久久aⅴ国产馆 | 国产亚洲欧美日韩精品一区二区三区 | 国产视频导航 | 丝袜美腿一区二区三区 | 国产日韩欧美一区 | 久久大陆 | 亚洲二区视频 | 色爱综合网 | 伊人精品| 日韩中文一区二区三区 | 久综合 | 福利片在线观看 | 亚洲成人综合社区 | 成人欧美一区二区三区色青冈 | 国产精品一区久久久 | 日韩免费一区 | 99久久婷婷 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 老司机成人在线 | 亚洲人成人一区二区在线观看 | 成人av在线播放 | 伊人精品在线视频 | 久久久久成人精品免费播放动漫 | 麻豆国产一区二区三区四区 | 一区二区三区在线电影 | 精品久久一区 | 国产福利资源在线 | 国产精品久久久久久久久污网站 | 红色av社区| 久久成人国产精品 | 国产日韩欧美精品 | 亚洲国产欧美国产综合一区 |