java和c/c++ 數據類型長度的比擬。本站提示廣大學習愛好者:(java和c/c++ 數據類型長度的比擬)文章只能為提供參考,不一定能成為您想要的結果。以下是java和c/c++ 數據類型長度的比擬正文
1、概念引見
Thread 是threading模塊中最主要的類之一,可使用它來創立線程。有兩種方法來創立線程:一種是經由過程繼續Thread類,重寫它的run辦法;另外一種是創立一個threading.Thread對象,在它的初始化函數(__init__)中將可挪用對象作為參數傳入.
Thread模塊是比擬底層的模塊,Threading模塊是對Thread做了一些包裝的,可以加倍便利的被應用。
別的在任務時,有時須要讓多條敕令並發的履行, 而不是次序履行。
2、代碼樣例
#!/usr/bin/python # encoding=utf-8 # Filename: thread-extends-class.py # 直接從Thread繼續,創立一個新的class,把線程履行的代碼放到這個新的 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 # 創立鎖 mutex = threading.Lock() #界說線程池 threads = [] # 創立線程對象 for x in xrange(0, 40): threads.append(ThreadImpl(100)) # 啟動線程 for t in threads: t.start() # 期待子線程停止 for t in threads: t.join() # 打印履行成果 print total
#!/usr/bin/python # encoding=utf-8 # Filename: thread-function.py # 創立線程要履行的函數,把這個函數傳遞進Thread對象裡,讓它來履行 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 # 創立鎖 mutex = threading.Lock() #界說線程池 threads = [] # 先創立線程對象 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() # 打印履行成果 print total if __name__ == '__main__': # 創立40個線程 main(40)
#!/usr/bin/python # encoding=utf-8 # Filename: put_files_hdfs.py # 讓多條敕令並發履行,如讓多條scp,ftp,hdfs上傳敕令並發履行,進步法式運轉效力 import datetime import os import threading def execCmd(cmd): try: print "敕令%s開端運轉%s" % (cmd,datetime.datetime.now()) os.system(cmd) print "敕令%s停止運轉%s" % (cmd,datetime.datetime.now()) except Exception, e: print '%s\t 運轉掉敗,掉敗緣由\r\n%s' % (cmd,e) if __name__ == '__main__': # 須要履行的敕令列表 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 "法式停止運轉%s" % datetime.datetime.now()
以上就是本文的全體內容,願望對年夜家進修python法式設計有所贊助。