我有两个线程,它们必须并行运行。但是只有第一个线程运行正常,而且由于两个线程相互依赖,所以第一个线程继续运行。你知道吗
我不能把所有的代码都粘贴在这里,但这是导致问题的部分
def startsending():
while(starting_index<=ending_index):
#some statements
clientsocket.sendto(data[index],(serverIP,serverPort))
#some statements
def startreceiving():
while(starting_index<=ending_index):
ack,servAddr = clientSocket.recvfrom(1050)
ackwindow[ack-starting_index] = 1
starting_index+=1
#some statements
在这里,start\u index、ending\u index和ackwindow是全局变量,如果使用“global”,则只有线程startsending()可以工作。我也尝试过使用锁,但是如果使用了锁,整个while循环就必须在critical部分中。你知道吗
实际上,while循环就是线程本身。两个循环必须同时运行,代码才能工作。你知道吗
有办法解决这个问题吗?或者我必须不使用线程,按顺序进行吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐