最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)的多進程和多線程功能示例

 更新時間:2018年05月29日 11:20:47   作者:荷蘭人號  
這篇文章主要介紹了Python實現(xiàn)的多進程和多線程功能,結合實例形式分析了Python多線程與多進程實現(xiàn)分布式系統(tǒng)功能相關操作技巧,需要的朋友可以參考下

本文實例講述了Python實現(xiàn)的多進程和多線程功能。分享給大家供大家參考,具體如下:

聽了朋友說起,他們目前開發(fā)的測試框架,用python實現(xiàn)的分布式系統(tǒng)。雖然python的執(zhí)行效率沒有c和c++那么高,但是依靠集群的力量,產生的壓力很是牛逼啊。

了解了下大概的方式就是

1、有臺主控機,負責調度,比如執(zhí)行的參數等

2、有n多臺執(zhí)行機,每個執(zhí)行機上部署一個python的xmlRPC server,主控機調用rpccall,然后執(zhí)行機執(zhí)行。rpccall里面會fork一些進程,每個進程再創(chuàng)建一些線程,去調用測試方法。這樣,擴展性就很好了。

對于python的rpc call,之前也沒有接觸過,不是很了解,google了一下,發(fā)現(xiàn)很簡單,拿了個網上的例子,如下,先部署一個rpcServer

from SimpleXMLRPCServer import SimpleXMLRPCServer
def add(a , b): 
  return a+bserver = SimpleXMLRPCServer(("10.249.192.38", 8000))#這里不要用localhost,否則只有本機才能訪問
server.register_function(add)
server.serve_forever()

客戶端:

from xmlrpclib import Server
Proxyserver = ServerProxy("http://localhost:8000")
try: ret = server.add(30,90) print 'result:', ret print 'result type:', type(ret)
except
 Exception, e: print "exception",e

其實還是很簡單的。

然后再看了下python的多進程和多線程的方法,寫了個例子,如下:

#encoding=utf-8
import sys
import os
import time
import pdb
import httplib
import thread
import threading
constant_p = 0 #創(chuàng)建全局變量,進程數
constant_s = 0 #創(chuàng)建全局變量,線程數
mutex_g = threading.RLock() #創(chuàng)建全局鎖
def run(count):#該函數創(chuàng)建3個線程,同時調用3個不同的函數
  a = 1
  b = 0
  thread.start_new_thread(test0,(a,b))#這里傳入的參數需要以元組的形式,跟void指針其實也差不多
  thread.start_new_thread(test1,(a,b))
  thread.start_new_thread(test2,(a,b))
def test0(a,b):
  global mutex_g
  global constant_s
  threadid = thread.get_ident()
  mutex_g.acquire()#這里需要把線程數說鎖起來,否則結果會被修改
  constant_s = constant_s+1
  mutex_g.release()
  print "thread 0 called,and the threadid is:%d"%(threadid)
  sys.exit(0)
def test1(a,b):
  global mutex_g
  global constant_s
  threadid = thread.get_ident()
  mutex_g.acquire()
  constant_s = constant_s+1
  mutex_g.release()
  print "thread 1 called,and the threadid is:%d"%(threadid)
  sys.exit(0)
def test2(a,b):
  global mutex_g
  global constant_s
  threadid = thread.get_ident()
  mutex_g.acquire()
  constant_s = constant_s+1
  mutex_g.release()
  print "thread 2 called,and the threadid is:%d"%(threadid)
  sys.exit(0)
def my_fork():
  global constant_p
  pid = os.fork()#fork一個子進程,子進程的pid=0同時2個進程會執(zhí)行my_fork()函數
  if (pid == 0):#子進程執(zhí)行到這個if里面
    constant_p = constant_s + 1
    run(3)
    time.sleep(5)
    print "total thread is %d"%constant_s#這個結果是3,因為子進程創(chuàng)建按了3個線程
  elif (pid >0):#父進程執(zhí)行到這個if里面
    constant_p = constant_s + 1 run(4)
    time.sleep(5)
    print "total thread is %d"%constant_s#這個結果也是3,因為該進程也創(chuàng)建了3個線程
  else:
    print "fork error"
    sys.exit(0)
  print "total process is %d"%constant_p#該結果是1,因為2個進程只執(zhí)行了一次
  constant_p = constant_s + 1
  sys.exit(0)
if __name__ == "__main__":
  my_fork()
  #my_fork()
  #my_fork()

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結》、《Python Socket編程技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • Pandas借助Numpy實現(xiàn)優(yōu)化的條件檢索代碼

    Pandas借助Numpy實現(xiàn)優(yōu)化的條件檢索代碼

    Numpy其實是最早的處理數據的Python庫,它的核心ndarray對象,是一個高效的n維數組結構,本文主要介紹了Pandas如何借助Numpy優(yōu)化條件檢索,感興趣的可以了解下
    2024-03-03
  • Python元組超詳細講解(小白篇)

    Python元組超詳細講解(小白篇)

    這篇文章主要介紹了Python元組超詳細講解的相關資料,元組是Python中的一種不可變序列類型,適用于存儲多個有序元素,它支持多種操作,如索引、切片、合并、重復等,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-12-12
  • python讀寫csv并將csv數據寫入數據庫

    python讀寫csv并將csv數據寫入數據庫

    CSV,也即Comma-Separated?Values,是一種用于存儲表格數據的純文本文件格式,本文主要介紹了如何使用python讀寫csv并將csv數據寫入數據庫,感興趣的可以了解下
    2024-11-11
  • Python經驗總結:兩種Type?Error問題

    Python經驗總結:兩種Type?Error問題

    這篇文章主要介紹了Python經驗總結:兩種Type?Error問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python2.7安裝opencv-python很慢且總是失敗問題

    python2.7安裝opencv-python很慢且總是失敗問題

    這篇文章主要介紹了python2.7安裝opencv-python很慢且總是失敗問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python如何使用雙線性插值計算網格內數據

    python如何使用雙線性插值計算網格內數據

    這篇文章主要介紹了python如何使用雙線性插值計算網格內數據問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python自動化構建工具scons使用入門筆記

    Python自動化構建工具scons使用入門筆記

    這篇文章主要介紹了Python自動化構建工具scons使用入門筆記,本文講解了安裝scons、scons常用命令、scons使用示例等內容,需要的朋友可以參考下
    2015-03-03
  • Django視圖之ORM數據庫查詢操作API的實例

    Django視圖之ORM數據庫查詢操作API的實例

    下面小編就為大家?guī)硪黄狣jango視圖之ORM數據庫查詢操作API的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • python encode和decode的妙用

    python encode和decode的妙用

    做網絡編程的時候,經常需要把接收到的數據用16進制的方式打印出來,方便查看。今天發(fā)現(xiàn)在Python下有這樣一個簡單的方法。
    2009-09-09
  • 詳解python 字符串和日期之間轉換 StringAndDate

    詳解python 字符串和日期之間轉換 StringAndDate

    這篇文章主要介紹了python 字符串和日期之間轉換 StringAndDate簡單實例的相關資料,需要的朋友可以參考下
    2017-05-05

最新評論

阿拉善左旗| 太和县| 宁都县| 五家渠市| 霍城县| 宝兴县| 中西区| 阳谷县| 大庆市| 濉溪县| 板桥市| 宜丰县| 河南省| 淳安县| 平利县| 淮安市| 八宿县| 延庆县| 鸡东县| 乐清市| 莫力| 六安市| 南通市| 洞头县| 肇州县| 博客| 慈溪市| 德令哈市| 苍梧县| 铜川市| 新巴尔虎左旗| 罗江县| 栾川县| 韶山市| 广东省| 称多县| 萍乡市| 红河县| 普宁市| 大石桥市| 凌海市|