进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,简单来说就是几个cpu核心就可以开几个进程

线程:线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位,简单来说就是一个进程可以开很多线程。

 

而python中对于多进程的优化据说不是太好,在基础库里提供了threading(线程),与multiprocessing(进程)的基础库

1、多进程

## 多线程
import threading

## 线程执行函数
def func():
    print('thread:',threading.current_thread())

## 线程池
threads = []

## 添加线程
for _ in range(5):
    threads.append(threading.Thread(target=func))

## 启动线程
for thread in threads:
    thread.start()
    thread.join()

结果:

python之threading与multiprocess,进程与线程

 

2、多线程

## 多进程
import multiprocessing
## 进程需要执行的函数
def func():
    print('process',multiprocessing.current_process())

## 有几个cpu核心添加几个进程
for _ in range(2):
    multiprocessing.Process(target=func).start()

结果:
python之threading与multiprocess,进程与线程

 

3、多进程与多线程

 

import multiprocessing
import threading
import time
## 线程执行的函数
def func():
    print('thread:',threading.current_thread())
    print(time.time(),'\n')
## 线程执行的函数
def bar():
    ## 线程池
    threads = []

    ##这里添加2个线程
    for _ in range(2):
        threads.append(threading.Thread(target=func))

    ## 启动线程
    for thread in threads:
        thread.start()
        thread.join()

## 进程池
multiprocess = []

## 有几核心cpu启动几个
for i in range(2):
    multiprocess.append(multiprocessing.Process(target=bar))

## 启动进程
for j in multiprocess:
    j.start()
    j.join()

 

 

 

查看结果:

python之threading与multiprocess,进程与线程

 

相关文章:

  • 2022-12-23
  • 2021-04-02
  • 2021-09-29
  • 2022-12-23
  • 2022-12-23
  • 2021-10-14
  • 2022-02-21
  • 2021-05-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2021-12-07
  • 2022-12-23
相关资源
相似解决方案