好的,代码非常基本。由于我使用多个线程,并且我希望它们之间共享变量,因此我使用的是全局变量。
为什么当我点击“C”时,ThreadClass 中的代码有时不执行?我知道这是一个并发问题,但我不知道如何解决它。我最近阅读了信号量和锁定,但目前我不确定如何实现它。欢迎任何建议。
import threading
buff_list = []
class ThreadClass(threading.Thread):
global buff_list
def run(self):
while (True):
if ("C" == raw_input()):
buff_list.append("C")
print buff_list
class ThreadClass2(threading.Thread):
global buff_list
def run(self):
while(True):
if ("B" == raw_input() and len(buff_list) > 0):
buff_list.pop()
print buff_list
a = ThreadClass()
b = ThreadClass2()
a.start()
b.start()