首页 > 代码库 > 【Python】进程和线程

【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】进程和线程