我是 Python 新手。我尝试用强读者优先级来编写读者-作者问题,由于某种原因,python 不认为我的全局变量“nor”。是不是线程定义有问题?
import threading
readers=threading.BoundedSemaphore(1)
writers=threading.BoundedSemaphore(1)
mutex=threading.BoundedSemaphore(1)
nor=0
class reader(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
while(1):
writers.acquire()
mutex.acquire()
if(nor==0):
readers.acquire()
nor=nor+1
mutex.release()
print "I just read\n"
mutex.acquire()
if(nor==1):
readers.release()
nor=nor-1
mutex.release()
writers.release()
class writer(threading.Thread):
def _init__(self):
threading.Thread.__init__(self)
def run(self):
while(1):
writers.acquire()
readers.acquire()
print "I just wrote\n"
writers.release()
readers.release()
r1=reader()
r2=reader()
r3=reader()
w1=writer()
w2=writer()
r1.start()
r2.start()
r3.start()
w1.start()
w2.start()
最佳答案
尝试给小费
global nor
在你的类(class)内,在nor调用之前。之后
def run(self):
关于python - Python 2.7 中的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086881/