- 个人博客: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步
肉眼可见的输出乱了,那正是因为两个函数在同步执行的结果。通过这个方法可以避免函数的顺序执行,从而提高单进程的利用效率。
1199

被折叠的 条评论
为什么被折叠?



