Python进程和线程

Posted

tags:

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

多任务的实现方式有三种方式:

1、多进程

2、多线程

3、多进程+多线程(这种比较复杂,实际很少采用)

 

【多进程】

1、在mac中创建子进程使用Python封装的fork()系统调用。

import os

pid = os.fork()

pid

技术分享

 

2、在windows上的实现。

使用multiprocessing模块的Process类。

为了观察,还加了一下端代码~

# -*- coding: utf-8 -*-

from multiprocessing import Process
import os

# 这里是子进程要执行的代码
def run_proc(name):
    print(Run child process %s (pid=%s)... % (name, os.getpid()))

if __name__==__main__:
    print(Parent process %s. % os.getpid())
    greeting = input(hi~)
    print(greeting)
    p = Process(target=run_proc, args=(MyTest,))
    print(Child process will start.)
    p.start()
    p.join()
    print(Child process end.)

然后就观察到:

技术分享

技术分享

结束:

$python test.py
Parent process 1388.
hi~ hi!
 hi!
Child process will start.
Run child process MyTest (pid=12680)...
Child process end.

join用于进程间的同步,子进程结束后继续往下执行。

 

3、有时候需要创建大量的进程(比如应对多用户访问)

 

【多线程】

【ThreadLocal】

【进程vs线程】

【分布式进程】

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

[Python3] 043 多线程 简介

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

什么是多线程,多进程?

线程学习知识点总结

多线程编程

多个请求是多线程吗