python多线程只能运行一个线程的问题
2018-08-08 本文已影响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