python docs server怎么用_clientserver应用程序的Python并行处理

这篇博客探讨了在Python中处理并发操作的最佳实践。建议尽量使用单线程,并确保函数不会阻塞。推荐了select库进行非阻塞操作,以及multiprocessing库实现多进程轮询。此外,还提到了更复杂的Twisted库,它能简化并发函数的编写,但可能需要重构现有代码。对于并发处理,线程应作为最后的选择。
摘要由CSDN通过智能技术生成

一般来说,在可能的情况下,最好使用一个线程来完成这样的操作。你只需要确保你的函数不会阻塞其他函数。想到的内置库是select。不幸的是,这有点难以解释,而且我已经有一段时间没有使用它了。希望这个链接能帮助你理解它http://pymotw.com/2/select/。在

您还可以使用multiprocessing库并在单独的线程中轮询每个pid。如果您计划进一步扩展,这可能很难管理!使用线程只能作为最后的手段(这是我通常在谈到线程时的经验法则)。https://docs.python.org/2/library/multiprocessing.html#module-multiprocessingfrom multiprocessing import Process

def askforprocess(processpid):

#Create TCP/IP socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Connect on host and port provided in command line arguments

server_address = ('172.16.1.105', int('5055'))

sock.connect(server_address)

# Send the data

try:

message = processpid

sock.sendall(message)

data = sock.recv(2048)

finally:

sock.close()

return data

if __name__ == '__main__':

info('main line')

p = Process(target=askforprocess, args=(processpid,))

p.start()

最后,还有一个Twisted库,它可能是最难理解的,但它使并发函数(不一定是并行的)易于编写。唯一的坏处是你可能不得不重写整个应用程序才能使用Twisted。不要被这个事实所拖累,试着用它,如果可以的话。在

希望有帮助。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值