zoukankan      html  css  js  c++  java
  • python开发进程:进程开启方式&多进程

    一,进程的开启方式

    利用模块开启进程

     1 from multiprocessing import Process
     2 import time,random
     3 import os
     4 def piao(name):
     5     print(os.getppid(),os.getpid())
     6     print('%s is piaoing' %name)
     7     # time.sleep(random.randint(1,3))
     8     print('%s is piao end' %name)
     9 if __name__ == '__main__':
    10     p1=Process(target=piao,kwargs={'name':'alex',})
    11     p2=Process(target=piao,args=('wupeiqi',))
    12     p3=Process(target=piao,kwargs={'name':'yuanhao',})
    13     p1.start()
    14     p2.start()
    15     p3.start()
    16     print('主进程',os.getpid())

    利用类开启进程

     1 from multiprocessing import Process
     2 import time,random
     3 import os
     4 class Piao(Process):
     5     def __init__(self,name):
     6         super().__init__()
     7         self.name=name
     8     def run(self):
     9         print(os.getppid(),os.getpid())
    10         print('%s is piaoing' %self.name)
    11         # time.sleep(random.randint(1,3))
    12         print('%s is piao end' %self.name)
    13 if __name__ == '__main__':
    14     p1=Piao('alex')
    15     p2=Piao('wupeiqi')
    16     p3=Piao('yuanhao')
    17 
    18     p1.start()
    19     p2.start()
    20     p3.start()
    21     print('主进程',os.getpid(),os.getppid())

    二,多进程

    服务器端

     1 from socket import *
     2 from multiprocessing import Process
     3 s=socket(AF_INET,SOCK_STREAM)
     4 s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #就是它,在bind前加
     5 s.bind(('127.0.0.1',8088))
     6 s.listen(5)
     7 def talk(conn,addr):
     8     while True: #通信循环
     9         try:
    10             data=conn.recv(1024)
    11             if not data:break
    12             conn.send(data.upper())
    13         except Exception:
    14             break
    15     conn.close()
    16 if __name__ == '__main__':
    17     while True:#链接循环
    18         conn,addr=s.accept()
    19         p=Process(target=talk,args=(conn,addr))
    20         p.start()
    21     s.close()

     客户端

     1 from socket import *
     2 c=socket(AF_INET,SOCK_STREAM)
     3 c.connect(('127.0.0.1',8088))
     4 
     5 while True:
     6     msg=input('>>: ').strip()
     7     if not msg:continue
     8     c.send(msg.encode('utf-8'))
     9     data=c.recv(1024)
    10     print(data.decode('utf-8'))
    11 c.close()
  • 相关阅读:
    使用contentProvider
    创建Sqlite数据库(一)
    AIDL实现进程间通信
    Messenger实现进程间通信(IPC)
    Serializable使用
    Parcelable使用(二)
    STAR法则
    Python系列-------基本语法
    前端随心记---------面试题集
    前端随心记---------惟客科技面试
  • 原文地址:https://www.cnblogs.com/jokerbj/p/7424953.html
Copyright © 2011-2022 走看看