python多线程编程

  • 个人博客:https://littlewith.github.io/
  • 个人主页:https://littlewith.top/

欢迎各位看官给我留言

多线程

  • 多线程指的是让多个函数同步执行,让一些进程同步运行,从而不会造成阻塞的情况。
单线程编程

同步函数是按部就班执行的函数,在上一个函数执行结束后才会执行下一个函数。如下面这个例子:

import time


def main1():
    print("这是main1函数,第1步")
    time.sleep(1)
    print("这是main1函数,第2步")
    time.sleep(1)
    print("这是main1函数,第3步")
    time.sleep(1)
    print("这是main1函数,第4步")
    time.sleep(1)
    print("这是main1函数,第5步")
    time.sleep(1)
    print("这是main1函数,第6步")
    time.sleep(1)


def main2():
    print("这是main2函数,我做了另外一些事情,第1步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第2步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第3步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第4步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第5步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第6步")
    time.sleep(1)


if __name__ == "__main__":
    main1()
    main2()

运行结果为:

这是main1函数,第1步
这是main1函数,第2步
这是main1函数,第3步
这是main1函数,第4步
这是main1函数,第5步
这是main1函数,第6步
这是main2函数,我做了另外一些事情,第1步
这是main2函数,我做了另外一些事情,第2步
这是main2函数,我做了另外一些事情,第3步
这是main2函数,我做了另外一些事情,第4步
这是main2函数,我做了另外一些事情,第5步
这是main2函数,我做了另外一些事情,第6步

可见,单线程模式下,python执行函数是一步一步来的,先执行上面函数,结束后再执行下面函数。

多线程编程

多线程编程,指的是给函数开启不同的线程,让这两个线程进行并发运行,从而同时进行处理。如下面这个例子,使用threading模块进行多线程编程

import time
import threading


def main1():
    print("这是main1函数,第1步")
    time.sleep(1)
    print("这是main1函数,第2步")
    time.sleep(1)
    print("这是main1函数,第3步")
    time.sleep(1)
    print("这是main1函数,第4步")
    time.sleep(1)
    print("这是main1函数,第5步")
    time.sleep(1)
    print("这是main1函数,第6步")
    time.sleep(1)


def main2():
    print("这是main2函数,我做了另外一些事情,第1步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第2步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第3步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第4步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第5步")
    time.sleep(1)
    print("这是main2函数,我做了另外一些事情,第6步")
    time.sleep(1)


if __name__ == "__main__":
    thread1 = threading.Thread(target=main1)
    thread2 = threading.Thread(target=main2)
    thread1.start()
    thread2.start()

这是main1函数,第1步
这是main2函数,我做了另外一些事情,第1步
这是main2函数,我做了另外一些事情,第2步这是main1函数,第2步
这是main2函数,我做了另外一些事情,第3步
这是main1函数,第3步
这是main1函数,第4步这是main2函数,我做了另外一些事情,第4步
这是main2函数,我做了另外一些事情,第5步这是main1函数,第5步
这是main2函数,我做了另外一些事情,第6步这是main1函数,第6步

肉眼可见的输出乱了,那正是因为两个函数在同步执行的结果。通过这个方法可以避免函数的顺序执行,从而提高单进程的利用效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值