python 多线程 Threading

简单的多线程: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

主线程退出,子线程还在运行,还可以输入数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值