如何 运行 Python3 中的并行语句

How to run the Statements in Parallel in Python3

s_t = obj.sock_recv(4096).decode('ascii')
    print(s_t)
    inp = input("Client reply!")
    obj.sock_send(str.encode(inp))
  

谁能指导我如何并行 运行 这些语句,这意味着如果 s_t 没有收到任何东西,那么程序不会卡住,但仍然会执行进一步的语句。

我会添加这个,因为它包含了一些问题,当你有一个循环并且已经 运行 时。它之前把我绊倒了,所以不妨让你头疼一下。

import asyncio

async def getData1():
    s_t = obj.sock_recv(4096).decode('ascii')
    return

async def getInp1():
    inp = input("Client reply!")
    obj.sock_send(str.encode(inp))
    return

async def main():
    res = await(asyncio.gather(getData1(), getInp1())
    
if __name__ == "__main__":

    try:
        loop = asyncio.get_running_loop()
    except RuntimeError:              
        loop = None

    if loop and loop.is_running():
        print('Async event loop already running')
        res1 = loop.create_task(main())
    else:
        print('Starting new event loop')
        res1 = asyncio.run(main())

    
    

如果您的目标是使 'recv' 成为非阻塞的,即 'recv' 将在没有数据时立即 return,

然后你可以这样修改你的代码:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setblocking(0) # Add this line to socket object

obj, addr = s.accept()
obj.setblocking(0)

如果您正在寻找异步服务器,那么我相信 asyncio 是正确的选择。