进程 - 多进程之间的数据隔离问题、使用多进程实现socket服务端的并发效果(三)

# 进程 与 进程之间的数据是隔离的,比如例子两个变量n

import os
from multiprocessing import Process

def func():
global n # 声明了一个全局变量
n = 0 # 重新定义了一个n
print('pid : %s'%os.getpid(),n)

if __name__ == '__main__':
n = 100
p = Process(target=func)
p.start()
p.join()
print(os.getpid(),n)


# 使用多进程实现socket服务端的并发效果
client端
import socket

sk = socket.socket()
sk.connect(('127.0.0.1',8080))
msg = sk.recv(1024).decode('utf-8')
print(msg)
msg2 = input('>>>').encode('utf-8')
sk.send(msg2)
sk.close()

server端
import socket
from multiprocessing import Process
def serve(conn):
ret = '你好'.encode('utf-8')
conn.send(ret)
msg = conn.recv(1024).decode('utf-8')
print(msg)
conn.close()

if __name__ == '__main__' :
sk = socket.socket()
sk.bind(('127.0.0.1',8080))
sk.listen()
try:
while True:
conn,addr = sk.accept()
p = Process(target=serve,args=(conn,))
p.start()
finally:
sk.close()

猜你喜欢

转载自www.cnblogs.com/mys6/p/10840747.html