运行环境:CentOS Linux release 7.6.1810 + Python 3.6.8
以下代码在 linux 跑总是会死锁 hang 死, windows 10 下运行正常,这个怎么理解?
# coding: utf-8
import queue
import time
import _thread
class QueueTest(object):
def __init__(self):
self.q = queue.Queue()
def test_function(self,num):
while True:
self.q.put("this is number: %s" % num)
time.sleep(0.1)
def producer(self):
for i in range(1500):
_thread.start_new_thread(self.test_function,(i,))
def consumer(self):
while True:
num = self.q.get()
print(f"get message: {num}\n")
def print_qsize(self):
while True:
self.qsize = self.q.qsize()
print(f"this queue size is {self.qsize}\n")
time.sleep(1)
test = QueueTest()
test.producer()
for i in range(150):
_thread.start_new_thread(test.consumer,())
test.print_qsize()