您的位置:首页 > 编程语言 > Python开发

python 多线程 Threading

2018-02-27 14:37 399 查看
简单的多线程:python 2.7

# -*- coding: utf-8 -*-
import threading

def run_thread():
while True:
cmd = input("input you choice: ")
print(cmd)
if cmd == 0:
print("Thread Exit")
break
else:
print("Thread Running")

t1 = threading.Thread(target=run_thread)
t1.setDaemon(True)
t1.start()
print('join')
t1.join()
print('End')


运行结果:

input you choice: join
1
1
Thread Running
input you choice: 2
2
Thread Running
input you choice: 0
0
Thread Exit
End

Process finished with exit code 0


t1.join()的作用的是阻塞等待子线程t1退出,才返回往下执行

实验1

将t1.join() 这句注释掉:

# -*- coding: utf-8 -*-
import threading

def run_thread():
while True:
cmd = input("input you choice: ")
print(cmd)
if cmd == 0:
print("Thread Exit")
break
else:
print("Thread Running")

t1 = threading.Thread(target=run_thread)
t1.setDaemon(True)
t1.start()
print('join')
#t1.join()
print('End')


运行结果:

joininput you choice:
End

Process finished with exit code 0


主线程退出的时候,子线程也一起退出了

没有机会输入数据。

实验2:

将t1.join() 这句注释掉:

将t1.setDaemon(True) 这句也注释掉:

# -*- coding: utf-8 -*-
import threading

def run_thread():
while True:
cmd = input("input you choice: ")
print(cmd)
if cmd == 0:
print("Thread Exit")
break
else:
print("Thread Running")

t1 = threading.Thread(target=run_thread)
#t1.setDaemon(True)
t1.start()
print('join')
#t1.join()


运行结果:

joininput you choice:
End
1
1
Thread Running
input you choice: 2
2
Thread Running
input you choice: 5
5
Thread Running
input you choice: 0
0
Thread Exit

Process finished with exit code 0


主线程退出,子线程还在运行,还可以输入数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python