python高阶之多线程

目录

一.线程

二.线程守护

 三.线程阻塞


一.线程

线程:进程内部进行CPU调度的基本单位,一个进程中至少存在一个线程

●模块:threading

●创建线程: Thread(target= func [args= (value1 ,value2,......)])

●target,指定线程需要执行的任务(通常是函数名或者方法名,不要加括号)

●args,指定线程执行的任务需要传入的实参,以元组形式传入

●启动线程:start( )

import threading
import time

def f1():
    for i in range(100):
        print('.')
        time . sleep(0.2)

def f2():
    for i in range (100):
        print('.')
        time .sleep(0.2)

if __ name__ ='- main__' :
    th1 = threading. Thread(target=f1) #创建子线程
    th2 = threading .Thread(target=f2)
    th1.start()#启动线程
    th2.start()
    print('主线程结束' ) #该段代码中,主线程和子线程都是互相独立,没有先后关系

二.线程守护

作用:子线程跟随主线程结束而结束

方法:setDaemon(True),必须在线程启动前设置

import threading
import time

def f1():
    for i in range(100):
        print('.')
        time . sleep(0.2)

def f2():
    for i in range (100):
        print('.')
        time .sleep(0.2)

if __ name__ ='- main__' :
    th1 = threading.Thread(target=f1) #创建子线程
    th2 = threading.Thread(target=f2)
    th1.setDaemon(True) #线程守护
    th2.setDaemon(True)
    th1.start()#启动线程
    th2.start()
    print('主线程结束' ) #该段代码中,主线程结束,子线程会跟着结束

 三.线程阻塞

作用:主线程在子线程结束后结束

方法:join(),需要在线程启动后设置

import threading
import time

def f1():
    for i in range(100):
        print('.')
        time . sleep(0.2)

def f2():
    for i in range (100):
        print('.')
        time .sleep(0.2)

if __ name__ ='- main__' :
    th1 = threading.Thread(target=f1) #创建子线程
    th2 = threading.Thread(target=f2)
    th1.start()#启动线程
    th2.start()
    th1.join() #线程阻塞
    th2.join()
    print('主线程结束' ) #该段代码中,主线程在子线程结束后结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值