# coding:utf-8
'''
threading 模块介绍:
1.threading 是对thread模块的再封装
2.threading 模块支持守护线程
3.守护线程 :守护正常线程不会因为进程结束而被打断
守护线程会在所有线程结束之后运行
在进程要结束之前会对守护线程进行检测,如果守护线程没有被运行,
进程就不会结束而在等待中,如果守护线程在运行就会进程结束
threading.Thread(target,args) 创建线程,但没有启动线程
初学只需要用到两个参数
target 线程所要加载的函数
args 被加载函数所需要的参数
.start() 开启线程
.join() 挂起线程
在thread模块中
thread.start_new_thread()方法不仅创建了线程而且启动了线程
'''
import threading
import time
def loop(nLoop,nSec):
print("loop%s is start at:"%nLoop,time.ctime())
time.sleep(nSec)
print("loop%s is stop at:"%nLoop,time.ctime())
def main():
print("all is start at :",time.ctime())
sleep_list=[2,3,4,2,1]
thread_list=[]
for i in range(len(sleep_list)):
t = threading.Thread(target=loop,args=(i,sleep_list[i])) #创建线程,但没有启动线程
thread_list.append(t) #将创建的线程存储在线程列表当中
for i in thread_list:
print(i) #为了直观的看到所有的线程,将创建的线程打印出来
for i in range(len(sleep_list)):
thread_list[i].start() #开启线程
for i in range(len(sleep_list)):
thread_list[i].join() #挂起线程,但是线程没有结束,被暂停了
#可以再次打印线程列表看出来
print('---------------------------')
for i in thread_list:
print(i) #打印被挂起的线程
if __name__ == '__main__':
main()
线程(四):使用threading模块建立线程
最新推荐文章于 2022-12-08 21:46:05 发布