1. 程式人生 > >進程 - 多進程之間的數據隔離問題、使用多進程實現socket服務端的並發效果(三)

進程 - 多進程之間的數據隔離問題、使用多進程實現socket服務端的並發效果(三)

rec ddr end font 兩個 con col nco span

# 進程 與 進程之間的數據是隔離的,比如例子兩個變量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()

進程 - 多進程之間的數據隔離問題、使用多進程實現socket服務端的並發效果(三)