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

问题描述:

使用 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
    原文作者:狗嗨旺
    原文地址: https://www.jianshu.com/p/79372add4c45
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞