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
上一篇下一篇

猜你喜欢

热点阅读