线程(四):使用threading模块建立线程

本文介绍了Python中使用threading模块实现多线程的基本方法。包括如何创建和启动线程、线程的挂起等关键操作,并通过具体示例展示了如何在实际应用中使用这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值