Python多线程与多进程

 ̄綄美尐妖づ 提交于 2020-02-07 03:00:31

Python多进程
1.用os.fock函数
2.使用multiprocessing模块
方法1只能在linux系统中使用
方法2提供了跨平台的多线程模块

#coding:utf-8

from multiprocessing import Process
from time import sleep
def func(num):
 print '进程%d开始'%(num)
 sleep(num)
 print '进程结束'

num = 5
for i in range(1,num+1):
 p = Process(target=func,args=(i,))
 p.start()
 #p.join()#添加这句会等待子线程结束之后主线程再结束
 

还有通过继承的方式实现多进程

#coding:utf-8
from multiprocessing import Process
from time import sleep
def func(num):
 print '线程%d开始'%(num)
 sleep(num)
 print '线程%d结束'%(num)

class MyProcess(Process):

 def __init__(self,num):
  super(MyProcess,self).__init__()#必须先调用父方法
  self.num = num
 
 def run(self):
  #重写run方法
  func(self.num)
 
 for i in range(1,6):
  p = MyProcess(i)
  p.start()

在用多进程计算阶乘的时候,碰到了最大递归深度的问题,可以使用如下代码解决

import sys
sys.setrecursionlimit(100000)#但是这有最大限制次数

Python多线程
Python提供了threading模块提供多线程支持
方法也有传入函数和继承两种,用法多类似多进程Thread

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!