我目前正在编写一个客户端-服务器应用程序作为练习,到目前为止,我已经完成了几乎所有的工作,但是有一个心理障碍,我还没有能够成功地通过谷歌自己。在
在服务器应用程序中,我认为让包处理程序和数据库处理程序从堆栈中工作是正确的做法吗?其思想是,一个线程循环监听数据包并将数据添加到堆栈中,然后另一个线程从堆栈底部弹出数据,并对sqldb进行一些检查。在
在这种特殊情况下,包处理程序保持工作更为重要。我想我的问题是,这是线程的适当使用吗?我在哪里会遇到需要线程锁定的问题,例如,当包线程添加到堆栈中时,我是否应该锁定db处理程序,以避免在尝试写入和读取时出现问题,比如堆栈中的唯一值等等
谢谢大家!在
这里有一段代码,请注意,它正在进行中,所以不要妄下判断,这也是我第一次尝试python(目前我比perl或php更喜欢它!)。在
class socketListen(threading.Thread):
def run(self):
while True:
datagram = s.recv('1024')
if not datagram:
break
packetArray = datagram.split(',')
if packetArray[0] = '31337':
listHandle.put(packetArray)
s.close()
class stackOperations(threading.Thread):
def run(self):
while True:
#pull the last item off the stack and run ops on it
#listHandle.getLast is the last item on the queue
def
class listHandle():
def put(shiftData):
if not mainStack:
mainStack = []
mainStack.insert(0,shiftData)
def getLast:
return mainStack.pop()
这就是queues的用途。用queue和no替换stack,您不必使用任何其他同步方法。顺便说一句,多处理比线程处理好,因为它可以利用多核/超线程处理器。接口非常相似,因此值得研究切换。在
相关问题 更多 >
编程相关推荐