亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

一、概念介紹

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

二、代碼樣例

#!/usr/bin/python
# encoding=utf-8
# Filename: thread-extends-class.py
# 直接從Thread繼承,創(chuàng)建一個(gè)新的class,把線程執(zhí)行的代碼放到這個(gè)新的 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)建線程對(duì)象
 for x in xrange(0, 40):
  threads.append(ThreadImpl(100))
 # 啟動(dòng)線程
 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ù),把這個(gè)函數(shù)傳遞進(jìn)Thread對(duì)象里,讓它來執(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)建線程對(duì)象
 for x in xrange(0, num):
  threads.append(threading.Thread(target=threadFunc, args=(100,)))
 # 啟動(dòng)所有線程
 for t in threads:
  t.start()
 # 主線程中等待所有子線程退出
 for t in threads:
  t.join() 
  
 # 打印執(zhí)行結(jié)果
 print total
 
 
if __name__ == '__main__':
 # 創(chuàng)建40個(gè)線程
 main(40)
#!/usr/bin/python
# encoding=utf-8
# Filename: put_files_hdfs.py
# 讓多條命令并發(fā)執(zhí)行,如讓多條scp,ftp,hdfs上傳命令并發(fā)執(zhí)行,提高程序運(yùn)行效率
import datetime
import os
import threading

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 在Python 3中實(shí)現(xiàn)類型檢查器的簡(jiǎn)單方法

    在Python 3中實(shí)現(xiàn)類型檢查器的簡(jiǎn)單方法

    這篇文章主要介紹了在Python 3中實(shí)現(xiàn)類型檢查器的簡(jiǎn)單方法,包括對(duì)函數(shù)注解這個(gè)新特性的介紹,需要的朋友可以參考下
    2015-07-07
  • 大語(yǔ)言模型的開發(fā)利器langchainan安裝使用快速入門學(xué)習(xí)

    大語(yǔ)言模型的開發(fā)利器langchainan安裝使用快速入門學(xué)習(xí)

    這篇文章主要為大家介紹了大語(yǔ)言模型的開發(fā)利器langchain安裝使用快速入門學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • python爬蟲之基金信息存儲(chǔ)

    python爬蟲之基金信息存儲(chǔ)

    這篇文章主要介紹了python爬蟲之基金信息存儲(chǔ),前面已經(jīng)講了很多次要進(jìn)行數(shù)據(jù)存儲(chǔ),終于在上一篇中完成了數(shù)據(jù)庫(kù)的設(shè),在這篇文章我們就來完成數(shù)據(jù)存儲(chǔ)操作部分的介紹,需要的朋友可以參考一下
    2022-05-05
  • 在Python中操作字典之update()方法的使用

    在Python中操作字典之update()方法的使用

    這篇文章主要介紹了在Python中操作字典之update()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • python從Oracle讀取數(shù)據(jù)生成圖表

    python從Oracle讀取數(shù)據(jù)生成圖表

    這篇文章主要介紹了python如何從Oracle讀取數(shù)據(jù)生成圖表,幫助大家更好的利用python處理數(shù)據(jù),感興趣的朋友可以了解下
    2020-10-10
  • 淺談Python 對(duì)象內(nèi)存占用

    淺談Python 對(duì)象內(nèi)存占用

    下面小編就為大家?guī)硪黄獪\談Python 對(duì)象內(nèi)存占用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • keras的get_value運(yùn)行越來越慢的解決方案

    keras的get_value運(yùn)行越來越慢的解決方案

    這篇文章主要介紹了keras的get_value運(yùn)行越來越慢的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Selenium自動(dòng)化測(cè)試實(shí)現(xiàn)窗口切換

    Selenium自動(dòng)化測(cè)試實(shí)現(xiàn)窗口切換

    這篇文章主要介紹了Selenium自動(dòng)化測(cè)試實(shí)現(xiàn)窗口切換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python+OpenCV圖像處理之直方圖統(tǒng)計(jì)

    Python+OpenCV圖像處理之直方圖統(tǒng)計(jì)

    直方圖就是對(duì)圖像的另外一種解釋,它描述了整幅圖像的灰度分布。通過直方圖我們可以對(duì)圖像的亮度、灰度分布、對(duì)比度等有了一個(gè)直觀的認(rèn)識(shí)。本文將為大家詳細(xì)介紹一下如何通過OpenCV實(shí)現(xiàn)直方圖統(tǒng)計(jì),感興趣的可以了解一下
    2021-12-12
  • 使用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片爬蟲

    使用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片爬蟲

    在本文中,我們將學(xué)習(xí)如何使用Python創(chuàng)建一個(gè)簡(jiǎn)單的圖片爬蟲,我們將利用requests庫(kù)來發(fā)送HTTP請(qǐng)求,BeautifulSoup庫(kù)來解析HTML頁(yè)面,以及os和shutil庫(kù)來下載和保存圖片,通過這個(gè)教程,你將學(xué)會(huì)如何爬取網(wǎng)頁(yè)上的圖片并保存到本地,需要的朋友可以參考下
    2024-02-02

最新評(píng)論