国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python多線程編程(二):啟動線程的兩種方法

2020-02-23 00:34:36
字體:
供稿:網(wǎng)友

在Python中我們主要是通過thread和threading這兩個模塊來實現(xiàn)的,其中Python的threading模塊是對thread做了一些包裝的,可以更加方便的被使用,所以我們使用threading模塊實現(xiàn)多線程編程。一般來說,使用線程有兩種模式,一種是創(chuàng)建線程要執(zhí)行的函數(shù),把這個函數(shù)傳遞進Thread對象里,讓它來執(zhí)行;另一種是直接從Thread繼承,創(chuàng)建一個新的class,把線程執(zhí)行的代碼放到這個新的 class里。

將函數(shù)傳遞進Thread對象
代碼如下:
''' 
Created on 2012-9-5 
 
@author:  walfred
@module: thread.ThreadTest1 
@description:
'''   
import threading 
 
def thread_fun(num): 
    for n in range(0, int(num)): 
        print " I come from %s, num: %s" %( threading.currentThread().getName(), n) 
 
def main(thread_num): 
    thread_list = list(); 
    # 先創(chuàng)建線程對象 
    for i in range(0, thread_num): 
        thread_name = "thread_%s" %i 
        thread_list.append(threading.Thread(target = thread_fun, name = thread_name, args = (20,))) 
 
    # 啟動所有線程    
    for thread in thread_list: 
        thread.start() 
 
    # 主線程中等待所有子線程退出 
    for thread in thread_list: 
        thread.join() 
 
if __name__ == "__main__": 
    main(3)

程序啟動了3個線程,并且打印了每一個線程的線程名字,這個比較簡單吧,處理重復(fù)任務(wù)就派出用場了,下面介紹使用繼承threading的方式;

繼承自threading.Thread類
代碼如下:
'''
Created on 2012-9-6
 
@author: walfred
@module: thread.ThreadTest2
''' 
 
import threading 
 
class MyThread(threading.Thread): 
    def __init__(self): 
        threading.Thread.__init__(self); 
 
    def run(self): 
        print "I am %s" %self.name 
 
if __name__ == "__main__": 
    for thread in range(0, 5): 
        t = MyThread() 
        t.start()

接下來的文章,將會介紹如何控制這些線程,包括子線程的退出,子線程是否存活及將子線程設(shè)置為守護線程(Daemon)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 东光县| 嘉鱼县| 扶余县| 江孜县| 华宁县| 郯城县| 巴彦县| 汝州市| 昆山市| 旺苍县| 泊头市| 太原市| 福建省| 宣城市| 遵义市| 曲水县| 台中市| 房产| 临潭县| 滦南县| 元朗区| 环江| 东莞市| 博客| 平阴县| 灵台县| 体育| 芦溪县| 南溪县| 方山县| 永康市| 紫金县| 沽源县| 临西县| 怀来县| 眉山市| 海城市| 阳朔县| 思南县| 柏乡县| 秦皇岛市|