进程和线程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程和线程相关的知识,希望对你有一定的参考价值。

多进程:multiprocessing

1、multiprocessing模块是跨平台版本的多进程模块。

2、multiprocessing模块提供了一个process类来代表一个进程对象。

3、创建子进程时,只需要传入一个执行函数和函数的参数,创建一个process实例,用start()方法启动

4、join()方法可以等待子进程结束后再继续往下运行,通常用于进程间的同步。

5、如果要启动大量的子进程,可以用进程池(Pool)的方式批量创建子进程。

6、对Pool对象调用join()方法会等待所有子进程执行完毕,调用join()之前必须先调用close(),调用close()之后就不能继续添加新的process了。

7、子进程,很多时候子进程并不是自身,而是外部进程。我们创建了子进程后,还需要控制子进程的输入和输出。

8、subprocess模块可以让我们非常方便地启动一个子进程,然后控制其输入和输出。

9、如果子进程还需要输入,则可以通过communicate()方式输入

10、process之间肯定是需要通信的,python的multiprocessing模块包装了底层的机制,提供了Queue、Pipes等多种方式来交换数据。

多线程:Threading

1、多任务可以由多进程完成,也可以由一个进程内的多线程完成。

2、进程是由若干个线程组成的,一个进程至少有一个线程。

3、高级语言通常都内置多线程的支持,python也不例外,python的线程是真正的posix thread,绝大多数情况下,使用threading这个高级模块即可。

4、启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始执行。

以上是关于进程和线程的主要内容,如果未能解决你的问题,请参考以下文章

进程和线程单线程多线程和多进程

进程和线程,线程安全,python如何实现多进程,多线程

进程与线程的问题

多线程和多进程模式有啥区别

什么是并发和并行?什么是进程和线程?进程和线程的区别

进程和线程的区别和联系