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

術語匯編 Perl多進程概念詳解

開發 架構
你對Perl多進程的概念是否熟悉,它和多線程有什么區別呢,本文介紹了Perl多進程的用法和適用場景,以及Perl多進程和多線程的關系。

在IT產品系統測試的自動化項目中,經常有并行處理多個子任務的需求,為了提高測試效率,就需要用到多進程或者多線程編程。本文介紹了Perl多進程的用法和適用場景,以及Perl多進程和多線程的關系。同時結合企業級IT產品系統測試的自動化特點,介紹了Perl多進程在這方面的應用。

Perl多進程

Perl語言是一種非常強大的腳本語言,其廣泛應用于系統維護,CGI(CommonGatewayInterface)編程,數據庫編程和自動化測試中。
多任務和并發處理一度被看作是判定優異操作系統的一個特性;同樣任何優秀從而流行的編程語言都會有并發的應用,而且都有各自的實現方法。Perl最開始在并發方面的應用就是多進程。

Perl多進程的用戶接口是fork()函數以及對系統fork函數封裝的一些module。我們在使用Perl語言編程時,如果一個任務的某一個段可以或者需要并發很多執行,那么我們就會使用Perl的多進程編程,例如同時向數據庫遞交多個記錄的查詢,同時完成多個系統信息的收集等等。
Perl的多進程是這樣實現的:主進程每fork一個子進程,會把當前(主進程的)內存空間的所有變量都復制一份傳到新的進程里面,達到數據共享的目的。此外,主進程和子進程可以通過信號、管道等來通信。

在處理并發的方案中,多進程依靠內存空間獨享提供了優秀的容錯性和健壯性。一個多進程的系統不會由于其中一個進程的狀態不良而崩潰,每個進程都相對獨立地運作,很少會相互影響。
內存空間獨享也造就了多進程不可避免的劣勢:資源負荷以及通信復雜,對于Perl來說,每個子進程都可以看作主進程的拷貝,這多少有些內存浪費,而且主進程的關鍵變量如果是“淺復制”到子進程的話,將會帶來一些意想不到的錯誤。另外,進程的創建和回收會帶來許多額外的負載,因此應當盡量避免頻繁地創建進程。

多進程之間的通信方式有socket,管道,信號量等。在Linux平臺上,對于進程間大量信息的交互情況,最常用的是文件;這在用戶空間進程和系統內核空間進程之間的通信中的最為常用。
在談起Perl多進程的時候,不可避免的要說說它與Perl多線程的關系。

Perl多進程和多線程的關系

如果我們需要執行一些各異的小任務,他們可能數量較多,但生存周期都比較短,或者他們可能共享大量數據,只有小部分的變量是自身的。這個時候,很自然就想到了多線程。
從Perl5.005開始,多線程的概念被引入Perl語言了;不過僅僅是概念而已。在Perl5.005中,線程模型默認共享所有的數據,而且數據的共享訪問需要明確的同步操作。這個模型被稱為“5005threads”,其實就是多進程,只不過換了個“多線程”的概念。

到了Perl5.6,一個新的線程模型引入了,各個線程的數據默認是私有的,而且共享數據的訪問需要顯式地調用相關的函數來保證同步。這個模型稱為“ithreads”。在Perl5.6中,ithreads模型并沒有提供一些API供用戶調用,僅作為一個內部的API供擴展使用。
到了Perl5.8,ithreads模型通過Perl的threads模塊供用戶使用,但是Perl5.8同時也保留了5005threads模型。這里,用戶可以通過配置來選擇使用哪一種模型。

對于最新的Perl5.10,5005threads模型就不再使用了,已從Perl解釋器中移除了。所以要使用真正意義的、穩定的多線程模塊,建議使用Perl5.10解釋器。2009年3月release的SLES11的安裝包已經默認使用Perl5.10了。至此,多進程和多線程應該是區別開來了。

Perl的threads模塊提供的多線程,應用于我們經典的多線程編程例如SocketServer編程、硬件驅動或者適配層編程十分有效,然而對于非線程安全的一些函數或者模塊調用就無能為力了,會導致不可預知的錯誤或者主進程的吊死、崩潰。

【編輯推薦】

  1. 追溯Perl線程的歷史
  2. Perl線程的生命周期
  3. Perl二維數組用法全程剖析
  4. Perl多線程的兩種實現方式
  5. 實例解析Perl多進程技術在自動化測試中的應用
責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-15 15:47:46

Perl守護進程

2010-07-20 09:05:08

Perl類

2010-07-13 10:21:19

2010-07-19 16:56:56

Perl線程

2010-07-26 16:54:15

Perl引用

2010-07-13 09:02:16

Perl

2010-07-12 14:23:52

UML公共機制

2010-07-15 17:50:47

Perl模式

2010-07-16 17:12:58

Perl析構函數

2010-07-14 15:05:21

Perl文件句柄

2010-06-02 14:28:23

SVN版本控制

2010-07-13 09:58:51

Perl關聯數組

2010-07-15 12:51:17

Perl多進程

2010-06-07 13:02:46

Hadoop簡介

2010-08-05 14:51:36

AdobeFlex

2010-09-17 09:19:08

Java API

2010-07-20 16:25:50

Perl正則表達式

2010-06-10 18:27:00

UML語言

2010-08-10 10:32:02

Flex語言

2010-07-27 08:59:19

FlexBuilder
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人国产在线视频 | 亚洲一区成人 | 2019天天操 | 亚洲午夜av| 中文字幕一二三 | 国产三级电影网站 | 一区二区三区观看视频 | 精品99在线 | 视频第一区 | 精品久久电影 | 一区二区三区精品视频 | 国产偷录视频叫床高潮对白 | 丁香久久| 激情六月丁香 | 久久亚洲一区 | 日本男人天堂 | 国产成人免费视频网站视频社区 | 国产精品久久国产精品 | 久久久2o19精品 | 精品国产一区二区久久 | 亚洲www啪成人一区二区 | 成人深夜福利网站 | 成人三级网址 | 欧美精品一区二区在线观看 | 97伦理最新伦理 | 免费国产一区二区 | 欧美精品福利视频 | 精品久久香蕉国产线看观看亚洲 | 99re在线 | 亚洲九九精品 | 国产伦精品一区二区三区照片91 | 午夜成人免费视频 | 亚洲成人av在线 | 久久新视频 | 久久久久久久久久久久一区二区 | 成人国产网站 | 国产亚洲欧美另类一区二区三区 | 国产欧美一区二区精品久导航 | 毛片网站在线观看 | 亚洲人成人网 | chinese中国真实乱对白 |