Python多线程,多进程不能同时执行?

class mhmclient:
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_socket.connect(('127.0.0.1', 8888))
def rece_msg(self):
print("接收:")
print(self.tcp_socket)
while True:
recv_msg = self.tcp_socket.recv(1024).decode("utf8")
print('接收到的信息为:%s' % recv_msg)
send_msg = "2222222222"
self.tcp_socket.send(send_msg.encode('utf-8'))
time.sleep(2)

def send_msg(self):
print("发送:")
print(self.tcp_socket)
while True:
send_msg = "1111111111"
self.tcp_socket.send(send_msg.encode('utf-8'))
time.sleep(2)

if __name__ == '__main__':
serv = mhmclient()
p1 = multiprocessing.Process(target=serv.send_msg(), args=())
p2 = multiprocessing.Process(target=serv.rece_msg(), args=())
p2.start()
p1.start()
1.两个进程没有一起执行,只看到了一个打印,线程是说有GIL,进程也破不了吗?

第1个回答  2019-10-24
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”。 线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
第2个回答  2019-10-24
Process(target=serv.send_msg(), args=())
这是什么意思?target=serv.send_msg ?追问

自定义的类里循环发送的方法,一开始用多线程,没成功,改成多进程了

第3个回答  2019-10-25
打开任务管理器看看,是不是有两个python
相似回答