在学python多线程的时候,照着网上的代码,一模一样的!!别人多线程,我一直单线程,很离谱。
代码如下
import threading import time def job_1(): print('This is a new threading') for i in range(10): time.sleep(0.2) print('T1 was finished') def job_2(): print('This is a new different threading') print('T2 was finished') def main(): print(threading.current_thread().getName()) new_threading_1 = threading.Thread(target=job_1()) #定义一个新线程,线程的名称,要做什么工作 new_threading_2 = threading.Thread(target=job_2()) new_threading_1.start() #添加线程,开始准备工作 new_threading_2.start() print('process was finished') if __name__=='__main__': main()
但是结果却是按顺序,按部就班的出来
在找了很多东西之后,在简书发现一篇帖子:https://www.jianshu.com/p/79372add4c45
然后,我照着改了一下,发现还真是。在设置线程的语句里,target的值不要加括号
print(threading.current_thread().getName()) # new_threading_1 = threading.Thread(target=job_1()) #定义一个新线程,线程的名称,要做什么工作 new_threading_1 = threading.Thread(target=job_1) # new_threading_2 = threading.Thread(target=job_2()) new_threading_2 = threading.Thread(target=job_2)
在做了这样的小修改后,运行程序,可以按预期的来