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

python實現(xiàn)多線程的方式及多條命令并發(fā)執(zhí)行

 更新時間:2016年06月07日 10:11:07   投稿:lijiao  
這篇文章主要為大家詳細介紹了python實現(xiàn)多線程的方式及多條命令并發(fā)執(zhí)行,感興趣的小伙伴們可以參考一下

一、概念介紹

Thread 是threading模塊中最重要的類之一,可以使用它來創(chuàng)建線程。有兩種方式來創(chuàng)建線程:一種是通過繼承Thread類,重寫它的run方法;另一種是創(chuàng)建一個threading.Thread對象,在它的初始化函數(shù)(__init__)中將可調(diào)用對象作為參數(shù)傳入.
Thread模塊是比較底層的模塊,Threading模塊是對Thread做了一些包裝的,可以更加方便的被使用。
另外在工作時,有時需要讓多條命令并發(fā)的執(zhí)行, 而不是順序執(zhí)行。

二、代碼樣例

#!/usr/bin/python
# encoding=utf-8
# Filename: thread-extends-class.py
# 直接從Thread繼承,創(chuàng)建一個新的class,把線程執(zhí)行的代碼放到這個新的 class里
import threading
import time
 
class ThreadImpl(threading.Thread):
 def __init__(self, num):
  threading.Thread.__init__(self)
  self._num = num
 
 def run(self):
  global total, mutex
  
  # 打印線程名
  print threading.currentThread().getName()
 
  for x in xrange(0, int(self._num)):
   # 取得鎖
   mutex.acquire()
   total = total + 1
   # 釋放鎖
   mutex.release()
 
if __name__ == '__main__':
 #定義全局變量
 global total, mutex
 total = 0
 # 創(chuàng)建鎖
 mutex = threading.Lock()
 
 #定義線程池
 threads = []
 # 創(chuàng)建線程對象
 for x in xrange(0, 40):
  threads.append(ThreadImpl(100))
 # 啟動線程
 for t in threads:
  t.start()
 # 等待子線程結(jié)束
 for t in threads:
  t.join() 
 
 # 打印執(zhí)行結(jié)果
 print total

#!/usr/bin/python
# encoding=utf-8
# Filename: thread-function.py
# 創(chuàng)建線程要執(zhí)行的函數(shù),把這個函數(shù)傳遞進Thread對象里,讓它來執(zhí)行

import threading
import time
 
def threadFunc(num):
 global total, mutex
 
 # 打印線程名
 print threading.currentThread().getName()
 
 for x in xrange(0, int(num)):
  # 取得鎖
  mutex.acquire()
  total = total + 1
  # 釋放鎖
  mutex.release()
 
def main(num):
 #定義全局變量
 global total, mutex
 total = 0
 # 創(chuàng)建鎖
 mutex = threading.Lock()
 
 #定義線程池
 threads = []
 # 先創(chuàng)建線程對象
 for x in xrange(0, num):
  threads.append(threading.Thread(target=threadFunc, args=(100,)))
 # 啟動所有線程
 for t in threads:
  t.start()
 # 主線程中等待所有子線程退出
 for t in threads:
  t.join() 
  
 # 打印執(zhí)行結(jié)果
 print total
 
 
if __name__ == '__main__':
 # 創(chuàng)建40個線程
 main(40)
#!/usr/bin/python
# encoding=utf-8
# Filename: put_files_hdfs.py
# 讓多條命令并發(fā)執(zhí)行,如讓多條scp,ftp,hdfs上傳命令并發(fā)執(zhí)行,提高程序運行效率
import datetime
import os
import threading

def execCmd(cmd):
 try:
  print "命令%s開始運行%s" % (cmd,datetime.datetime.now())
  os.system(cmd)
  print "命令%s結(jié)束運行%s" % (cmd,datetime.datetime.now())
 except Exception, e:
  print '%s\t 運行失敗,失敗原因\r\n%s' % (cmd,e)

if __name__ == '__main__':
 # 需要執(zhí)行的命令列表
 cmds = ['ls /root',
    'pwd',]
 
 #線程池
 threads = []
 
 print "程序開始運行%s" % datetime.datetime.now()

 for cmd in cmds:
  th = threading.Thread(target=execCmd, args=(cmd,))
  th.start()
  threads.append(th)
   
 # 等待線程運行完畢
 for th in threads:
  th.join()
   
 print "程序結(jié)束運行%s" % datetime.datetime.now()

以上就是本文的全部內(nèi)容,希望對大家學習python程序設計有所幫助。

相關文章

  • python中可以發(fā)生異常自動重試庫retrying

    python中可以發(fā)生異常自動重試庫retrying

    這篇文章主要介紹了python中可以發(fā)生異常自動重試庫retrying,retrying是一個極簡的使用Python編寫的庫,主題更多相關內(nèi)容需要的朋友可以參考一下
    2022-06-06
  • 對Python3.6 IDLE常用快捷鍵介紹

    對Python3.6 IDLE常用快捷鍵介紹

    今天小編就為大家分享一篇對Python3.6 IDLE常用快捷鍵介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python實現(xiàn)貪吃蛇游戲

    python實現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python字符串的轉(zhuǎn)義字符

    Python字符串的轉(zhuǎn)義字符

    這篇文章主要介紹了Python字符串的轉(zhuǎn)義字符,轉(zhuǎn)義字符是指,用一些普通字符的組合來代替一些特殊字符,由于其組合改變了原來字符表示的含義,下文相關資料需要的小伙伴可以參考一下
    2022-04-04
  • python繪制雙柱形圖代碼實例

    python繪制雙柱形圖代碼實例

    這篇文章主要介紹了python繪制雙柱形圖代碼實例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 實例講解Python腳本成為Windows中運行的exe文件

    實例講解Python腳本成為Windows中運行的exe文件

    在本篇文章里小編給大家分享了關于Python腳本成為Windows中運行的exe文件的相關知識點內(nèi)容,有興趣的朋友們學習下。
    2019-01-01
  • python使用xlrd模塊讀寫Excel文件的方法

    python使用xlrd模塊讀寫Excel文件的方法

    這篇文章主要介紹了python使用xlrd模塊讀寫Excel文件的方法,較為詳細的分析了xlrd模塊的安裝、使用與操作Excel文件的相關技巧,需要的朋友可以參考下
    2015-05-05
  • django 外鍵model的互相讀取方法

    django 外鍵model的互相讀取方法

    今天小編就為大家分享一篇django 外鍵model的互相讀取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python實現(xiàn)可自定義大小的截屏功能

    Python實現(xiàn)可自定義大小的截屏功能

    這篇文章主要介紹了Python實現(xiàn)可自定義大小的截屏功能,結(jié)合實例形式分析了Python針對指定范圍的截圖、保存等功能相關實現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • Python中引用傳參四種方式介紹

    Python中引用傳參四種方式介紹

    大家好,本篇文章主要講的是Python中引用傳參四種方式介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2021-12-12

最新評論

沙湾县| 壶关县| 夏邑县| 高密市| 五指山市| 二手房| 东至县| 漾濞| 孙吴县| 翼城县| 阳春市| 清远市| 桐梓县| 西乌| 焦作市| 长泰县| 柞水县| 礼泉县| 定兴县| 天台县| 望江县| 东丽区| 义马市| 台南市| 梁平县| 平原县| 洞口县| 济源市| 泽州县| 阿坝县| 成安县| 常熟市| 微山县| 阜城县| 元氏县| 新昌县| 旅游| 苏州市| 惠水县| 塔城市| 茌平县|