歡迎Python2.6:多處理器編程

來源:互聯網
上載者:User
原文:http://www.blogchina.com/20081009613591.html

    Python2.6正好在10.1發布,我還沒有仔細看完就迫不及待地寫這個介紹給大家,有太多令人激動的新改進。2.6是向
Python3.0(Python3000)過渡的版本,Python3000是一個新的台階,不跟python2.x序列相容。我仔細地看了一下新增加
的處理多進程的包組Multiprocessing(PEP 371),這是python為利用漸成主流的M3系統平台提供的服務而精心打造的武器。官方文檔說是“Process-based ‘Threading’interface”:(註:M3平台是我的獨出心裁,就是指多核、多處理器和多電腦系統Multicore、Multi CPU、Multi computers,我叫他M3系統編程,把本地的多核心多處理器與遠程多電腦放在同一個架構下面來考慮有許多優勢,例如multiprocessing.Manager就是這樣做的).

    Python處理並行計算的兩個主要工具是Threading和Multiprocessing,像上面的文檔說得multiprocessing使用類
似Threading的API來建立和管理進程(不是線程!)。令人振奮的是multiprocessing提供本地和遠端同步處理方法,能讓程式員充
分利用M3提供的強大計算能力,而不是讓它們停留在廣告效應上,不再是“銀樣蠟槍頭,中看不中用”了。多線程技術是我們比較熟悉的,但是多線程不能利用多核心和多處理器的運算能力。在分布式平行處理方面,python是捷足先登引領潮流了。這絕不是偶然的,Guido van Rossum在作業系統導師Andrew S Tanenbaum主
持的最早分布式作業系統Amoeba工作的時候,為它開發系統管理程式設計開發的,所以python具有優良的血統,是專門為分布式系統開發的工具,我個
人感覺在分布式平行處理方面python要領先於java,更不用說是C#了。當然,偏好有的時候就是偏見!Python2.6也就是
Python3000,有效地解決了(side-stepping)“全域鎖GIL”的問題,我們來看wikipedia上的說法:

現在把分布式並行系統編程的介面和系統調用封裝在一起了,簡單介紹如下:

  1. multiprocessing.Process建立新的進程,參數target=f,就把一個名字f的子進程建立出來了;
  2. multiprocessing.Queue
  3. multiprocessing.Pipe
  4. multiprocessing.Pool用來管理建立的多個子進程讓它們協調工作
  5. multiprocessing.Manager管理在遠程伺服器上建立的子進程,封裝了Lock和RLock鎖和訊號Semophore,這樣不必單獨處理並行問題了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.