import threading
import time
def funa():
print('开始上课了') # 1
# time.sleep(2) # 延迟2秒
print('结束了')
def funb():
print('我们今天学习线程') # 2
# time.sleep(2) # 延迟2秒
print('开始上课,认真听讲')
t1 = threading.Thread(target=funa) # target函数后面接收的是函数名,没有括号!!!!
t2 = threading.Thread(target=funb)
# 守护线程
t1.setDaemon(True)
t2.setDaemon(True)
#开启子线程
t1.start()
t2.start()
诚心请教各位,上面代码设置了守护线程,其中一次的执行结果如下图:
我有以下问题:
1.为什么打印出来的语句中,“开始上课了”和“我们今天学习线程”两句话中间没有换行?执行完也没有换行。正常来说,print语句打印完不是应该换行吗?
2.还是说,https://img-mid.csdnimg.cn/release/static/image/mid/ask/19248070924617.png "#left")
线程t1被线程t2抢占资源的时候,会在一条语句的执行到一半的时候被抢占?那会不会出现只打印了“开始”两个字之后,就被t2抢占了资源?
3.线程在执行的时候,最小单位是什么?(我就是想问,线程每次执行,至少执行完一个什么单位,才有可能发生被别的线程抢占资源的情况?)
上面的编辑有点问题,提问部分请看下面:
诚心请教各位,上面代码设置了守护线程,其中一次的执行结果如下图:
https://pan.baidu.com/s/1cilABOl6ESBpODsta2Behw?pwd=nvew
我有以下问题:
1.为什么打印出来的语句中,“开始上课了”和“我们今天学习线程”两句话中间没有换行?执行完也没有换行。正常来说,print语句打印完不是应该换行吗?
2.还是说,线程t1被线程t2抢占资源的时候,会在一条语句的执行到一半的时候被抢占?那会不会出现只打印了“开始”两个字之后,就被t2抢占了资源?
3.线程在执行的时候,最小单位是什么?(我就是想问,线程每次执行,至少执行完一个什么单位,才有可能发生被别的线程抢占资源的情况?)