Python 多任务(线程) day2 (1)
- 结论:多线程全局变量是共享的 (03)
- 因为多线程一般是配合使用,如果不共享,那么就要等到一个线程执行完,再把变量传递给另一个线程,就变成单线程了
- 但是如果多个线程同时需要修改一个全局变量,就会出现资源竞争
由于操作都要交给CPU执行,而CPU会让每个程序交替运行,导致全局变量还没存放进去,另一个线程又拿出来
于是另一个线程所拿出来的全局变量还没改变,于是变量只执行了一次 +1 所以全局变量是 2
这时就需要用到(同步👇)原子性,要么做完,要么不做 - t1 = threading.Thread(target=test1,args=(num,)) # args = (记得是元组如果只有一个数据就加逗号)