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

Perl多進程概念解析

開發 架構
本文介紹了Perl多進程的用法和適用場景,以及Perl多進程和多線程的關系。同時結合企業級IT產品系統測試的自動化特點,介紹了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-14 11:27:42

Perl多進程

2010-07-15 13:13:21

Perl多進程

2010-07-26 09:45:09

Perl多進程

2010-07-19 08:39:14

Perl包

2010-07-19 09:52:04

Perl標量

2010-07-16 12:59:46

Perl簡單變量

2010-07-20 09:23:30

Perl構造函數

2010-07-15 15:54:10

Perl守護進程

2010-07-14 11:14:48

Perl多進程

2010-07-19 14:37:01

Perl進程啟動函數

2010-07-15 15:47:46

Perl守護進程

2010-07-19 14:20:57

Perl函數

2010-07-20 16:05:07

Perl包

2010-07-15 13:21:46

Perl多進程

2010-07-23 13:07:39

Perl

2010-07-15 15:32:10

Perl線程

2010-07-13 09:50:55

Perl數組

2010-07-26 09:53:08

Perl多進程

2010-07-26 10:02:49

Perl多進程

2010-07-20 14:41:55

Perl語法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九久久久 | 国产日韩欧美 | 久久久久久久久一区 | 成人免费精品视频 | 日韩手机在线视频 | 亚洲精品黄色 | h视频在线免费 | 综合五月婷 | 国产精品久久久久久久久婷婷 | 日韩高清中文字幕 | 高清黄色 | www天天操| 国产精品一区二区久久 | 欧美激情视频网站 | 久久国产精品72免费观看 | 国产精品一区久久久 | 日韩欧美三级电影 | 91国产视频在线观看 | 精品欧美乱码久久久久久1区2区 | 国产精品久久久久久久久久 | 国产精品免费一区二区三区四区 | 国产精品一区二 | 国产成人精品综合 | 色婷婷综合久久久中字幕精品久久 | 亚洲成人一区 | 亚洲激情一级片 | 成人依人 | 国产精品黄 | 欧美激情视频一区二区三区在线播放 | 国产精品欧美日韩 | 国产精品一区二区在线免费观看 | 日韩 欧美 二区 | 91精品国产综合久久久久久丝袜 | 日韩在线观看一区 | 国产精品一区二区视频 | 久久一级免费视频 | 国产成人jvid在线播放 | 澳门永久av免费网站 | 久久久久国产 | 老司机深夜福利网站 | 日韩精品一区二区三区在线观看 |