python多线程失败,一直只有一个线程的解决办法

在学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)

在做了这样的小修改后,运行程序,可以按预期的来

猜你喜欢

转载自www.cnblogs.com/This-is-Y/p/12316801.html