zoukankan      html  css  js  c++  java
  • 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)

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

  • 相关阅读:
    java提高篇(四)-----抽象类与接口
    hdu1004----用java链表实现
    jkfladsdjfkldsa
    Handler_1
    Handler实现线程间的通信2
    Handler实现线程间的通信1
    Handler基本运行机制
    Android线程
    Activity声明周期2
    Activity声明周期1
  • 原文地址:https://www.cnblogs.com/This-is-Y/p/12316801.html
Copyright © 2011-2022 走看看