python多线程复习
无论你使用什么语言,多线程一直都有着举足轻重的地位,只要线程开得多,任务还能凑几桌(头发还得不停脱),哈哈哈开个玩笑。那么何谓多线程?
import time
def sing():
"""唱歌 5秒钟"""
for i in range(5):
print("------正在唱:妹妹你大胆滴往前走啊------")
time.sleep(1)
def dance():
"""跳舞 5秒钟"""
for i in range(5):
print("------正在跳舞------")
time.sleep(1)
def main():
sing()
dance()
if __name__ == '__main__':
main()
我们的程序默认只有一个主线程,主线程一条一条语句执行,于是上面这串代码的结果是这样的

接下来我们简单的加上一个进程
import time
import threading
def sing():
"""唱歌 5秒钟"""
for i in range(5):
print("------正在唱:妹妹你大胆滴往前走啊------")
time.sleep(1)
def dance():
"""跳舞 5秒钟"""
for i in range(5):
print("------正在跳舞------")
time.sleep(1)
def main():
t1 = threading.Thread(target=sing)
t2 = threading.Thread(target=dance)
t1.start()
t2.start()
if __name__ == '__main__':
main()
立马鸟枪换炮

以上就是实现了两个进程同时运行的效果
这里说一下原理:
我们平时写程序,算法和数据结构之类的,都没有用到多进程,程序默认就只有一个线程——主线程,这个主进程从起点向下一条一条执行语句,如果是c类语言就从main函数开始执行,一条一条的来。当我们加入多任务之后,主线程只要执行到产生多线程的语句就会创造出子线程来,在我这个程序中就是这里
t1 = threading.Thread(target=sing)
t2 = threading.Thread(target=dance)
t1.start()
t2.start()
当执行到第一句的话,马上就创建一个子线程跑到target, 即sing函数那里去待命,同理,主线程到了t2那里也会创建出一个子线程跑到dance函数那里去待命,当主线程一执行到start()函数的时候,早已蓄势待发的子线程马上开始它的任务。
注意!主线程会等待子线程,也就是说当子线程的任务还没执行完的时候,主线程是不能退出程序的,因为只要主线程一挂掉,子线程一个都不能活。
今天就先到这里。
谢谢你来看我!!你的关注对我非常重要!
网友评论