import threading
from queue import Queue
print_lock = threading.Lock()
def job(worker):
with print_lock:
with open('messages.txt') as f:
for line in f:
print(line)
def reader():
while True:
worker = q.get()
job(worker)
q.task_done()
q = Queue()
for x in range(10):
t = threading.Thread(target=reader)
t.daemon = True
t.start()
for worker in range(1):
q.put(worker)
q.join()
所以我想要的是每个线程读取不同的消息
您在同一个代码片段中尝试了太多东西需要学习,例如1)多线程2)队列数据结构3)线程同步机制4)锁定等
我只回答关于多线程的问题。在
在您的例子中,每个线程都在读取所有消息,因为目标函数“
job"
正在打开文件并读取所有数据,而每个线程都在调用该目标函数。在让我简化一下。在
代码:
输出:
^{pr2}$注意:我知道不推荐使用
global
的sue。但对于学习目的来说这是好的。在相关问题 更多 >
编程相关推荐