国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python實(shí)現(xiàn)多線程的方式及多條命令并發(fā)執(zhí)行

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

2020-08-26 09:31Python教程網(wǎng) Python

這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)多線程的方式及多條命令并發(fā)執(zhí)行,感興趣的小伙伴們可以參考一下

一、概念介紹

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

二、代碼樣例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/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

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/python
# encoding=utf-8
# Filename: thread-function.py
# 創(chuàng)建線程要執(zhí)行的函數(shù),把這個(gè)函數(shù)傳遞進(jìn)Thread對(duì)象里,讓它來(lái)執(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)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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開(kāi)始運(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 "程序開(kāi)始運(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ì)有所幫助。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 涩涩一区 | 日韩毛片一区二区三区 | 欧美成人伊人 | 一区二区三区动漫 | 日韩精品免费在线视频 | 色欧美片视频在线观看 | 久久成人精品 | 精品影院| 91激情视频 | 国产精品久久久 | 91在线免费看 | 亚洲免费a | 免费一区二区三区 | 欧美精品一二三区 | 精品成人免费一区二区在线播放 | 日韩欧美中文字幕在线视频 | 欧美成人免费看 | 欧美亚洲免费 | 一级全黄性色生活片 | a级性生活| 亚洲精品国产电影 | 黄瓜av| 久久久久国产一级毛片高清片 | 五月婷婷网站 | 91在线激情 | 久久精品无码一区二区日韩av | 黄色精品 | 999久久久 | 1a级毛片免费观看 | 国产成人一级毛片 | 国产精品毛片久久久久久久 | 国产成人黄色 | 免费人成黄页网站在线一区二区 | 欧美日韩精品一区 | av网站观看 | 欧美视频在线播放 | 自拍偷拍亚洲欧美 | 性大毛片视频 | 色播一区二区 | 精品国产精品三级精品av网址 | 操操操操操操操 |