首页 > 编程语言 > 详细

多进程多线程

时间:2019-03-11 21:53:46      阅读:147      评论:0      收藏:0      [点我收藏+]

多进程几种创建方式:

a.只使用于unix系统。 os.fork()调用一次,返回两次,在父进程中返回值为“子进程”ID,在子进程中返回值为0。

经常使用的函数:os.getpid()获取当前进程ID       os.getppid()当前进程的父进程ID

b.multiprocessing中的Process类

Process(target=函数名,args=(函数的参数,)

常用属性及方法:name、pid、run()自定义子类时需要覆盖、start()开启进程、join(time=None)阻塞、terminate()终止进程、is_alive()进程是否存活。

c.批量创建进程,使用进程池Pool。

apply 阻塞式首先主进程开始运行,碰到子进程,操作系统切换到子进程,等待子进程运行结束后,在切换到另外一个子进程,直到所有子进程运行完毕。然后在切换到主进程,运行剩余的部分。

apply_async是异步非阻塞式的。

首先主进程开始运行,碰到子进程后,主进程说:让我先运行个够,等到操作系统进行进程切换的时候,在交给子进程运行。以为我们的程序太短,然而还没等到操作系统进行进程切换,主进程就运行完毕了。

想要子进程执行,就告诉主进程:你等着所有子进程执行完毕后,在运行剩余部分。

推荐使用apply_async

---------------------------------------------后面补充同步异步阻塞非阻塞区分。

 

多线程:

1.thread

2.threading------实际是对第一种的优化。 使用threading中的Thread类。

多进程多线程

原文:https://www.cnblogs.com/lovestarmoon/p/10513410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!