码迷,mamicode.com
首页 > 编程语言 > 详细

Python的多线程

时间:2017-12-13 01:53:15      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:线程   count()   author   star   pre   font   run   post   结果   

线程间的关系

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

import threading
import time

def MyThread(n):
    print("Running Thread",n)
    print(threading.current_thread()) #打印当前线程的类型
    time.sleep(2)

for i in range(20):
    t = threading.Thread(target=MyThread,args=(i,))
    t.start()

print("Running Main Threading",threading.current_thread())
print(threading.active_count()) #计算线程数

 运行结果

技术分享图片

主线程和子线程同时执行,然后脚本执行Mythread函数里的time.sleep(2),运行停顿大概2秒

线程数为当前主线程和子线程数之和

 

def MyThread(n):
    print("Running Thread",n)
    print(threading.current_thread())
    time.sleep(2)

for i in range(20):
    t = threading.Thread(target=MyThread,args=(i,))
    t.start()

 这段代码为主线程启动的子线程

 

print("Running Main Threading",threading.current_thread())
print(threading.active_count())

 这段代码为主线程执行的线程

 

多线程的等待

 

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

import threading
import time

All_Thread = []

def MyThread(n):
    print("Running",n,"Thread")
    time.sleep(2)

for i in range(20):
    t = threading.Thread(target=MyThread,args=(i,))
    t.start()

print("Finished All Sub-thread")

 

 运行,查看结果

技术分享图片

该脚本同时执行主线程和子线程

如果想先执行完子线程再执行主线程,可以使用wait()

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

import threading
import time

All_Thread = []

def MyThread(n):
    print("Running",n,"Thread")
    time.sleep(2)

for i in range(20):
    t = threading.Thread(target=MyThread,args=(i,))
    t.start()
    All_Thread.append(t)

for t in All_Thread:
    t.join()

print("Finished All Sub-thread")

 运行,查看结果

技术分享图片

先执行了子线程,然后停留了大概2秒,再执行了主线程

Python的多线程

标签:线程   count()   author   star   pre   font   run   post   结果   

原文地址:http://www.cnblogs.com/sch01ar/p/8030198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!