美文网首页
python多线程只能运行一个线程的问题

python多线程只能运行一个线程的问题

作者: 狗嗨旺 | 来源:发表于2018-08-08 12:09 被阅读0次

    问题描述:

    使用 python threading.Thread() 建立两个线程,启动后只有线程1在运行,线程2不运行。

    问题代码

    import time, threading
    
    def run_thread1():
        while True:
            print("1")
    
    def run_thread2():
        while True:
            print("2")
    
    t1 = threading.Thread(target=run_thread1())
    t2 = threading.Thread(target=run_thread2())
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    print(balance)
    

    输出结果

    1
    1
    1
    1
    1
    

    只运行了线程1,没有运行线程2.

    错误原因

    t1 = threading.Thread(target=run_thread1())
    

    其中的threading.Thread(target=run_thread1())不应该加括号。不知道为什么有()后就不能运行另一个线程。

    正确代码

    import time, threading
    
    # 假定这是你的银行存款:
    balance = 0
    
    def run_thread1():
        while True:
            print("1")
    
    def run_thread2():
        while True:
            print("2")
    
    t1 = threading.Thread(target=run_thread1)
    t2 = threading.Thread(target=run_thread2)
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    print(balance)
    

    输出结果

    1
    1
    2
    2
    1
    1
    1
    

    相关文章

      网友评论

          本文标题:python多线程只能运行一个线程的问题

          本文链接:https://www.haomeiwen.com/subject/lobtbftx.html