python的多线程

多线程好比员工开公司,老板分配任务给员工,员工去工作后,老板也做自己的工作

1.多线程方法1→ 用函数

from threading import Thread


def func():
    for i in range(100):
        print ('func',i)


 # 多线程可以理解为开公司,线程为公司招聘的员工,然后让员工干活,老板该干啥干啥,员工和老板互不影响
if __name__ == '__main__':
    t = Thread(target=func)  #  创建一个线程,并给线程安培任务,任务放在target里
    t.start() # 多线程为可以开始工作状态,具体执行时间由CPU决定

    t2 = Thread(target=func)  # 这是老板招聘的第二个员工
    t2.start()

    for i in range(10):
        print('main:',i)

>>>
func 0
func 1
func 2
func 3
func 4

2.多线程方法2 → 用类

from threading import Thread

class MyThread(Thread):  # 继承Thread,老鼠的儿子会打洞,所以MyThread也会打洞
    def run(self): # run是固定的,当线程被执行时,被执行的就是rund()
        for i in range(100):
            print('子线程',i)

if __name__ == '__main__':
    t = MyThread()  # 创建一个对象
    # t.run() 这个是错误的,直接调用上面的run方法,就变单线程了
    t.start() # 开启线程,告诉CPU,可以执行了

    for i in range(100):
        print('主线程',i)


>>>
子线程 0
子线程主线程  1
0
主线程 子线程 2
子线程 3

给线程起名字,当线程很多分辨不过来,可以单独取名

from threading import Thread


def func(name):
    for i in range(10):
        print (name,i)

if __name__ == '__main__':
    t = Thread(target=func,args=('子线程名',))  #  有多个线程,给线程起名,用args,入参是元组
    t.start() # 多线程为可以开始工作状态,具体执行时间由CPU决定

    t2 = Thread(target=func,args=('第二个子线程名字:',))
    t2.start()

    for i in range(10):
        print('main:',i)


>>>
子线程名 8
子线程名 9
第二个子线程名字: main:0 0

main: 第二个子线程名字:1
main:  1
第二个子线程名字: 2

上面2个方法感觉用第一个更直观点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值