python中 (Threading/multiprocessing)//并发、并行、单进程、多进程、单线程、多线程// ___[ 详解 ]____

简单的概念术语

并发

单核 多个任务交替进行完成;
简单理解:
一个人(相当于一个核)做饭 ,你得买菜,煮饭,切菜,炒菜 。
一个人完成整个做饭的过程。
就是为了执行完成多个任务。

并行

多个CPU同时执行任务完成;
简单理解:
做饭的时候有多个人来帮你一起,有人洗菜,有人煮饭,有人切菜,有人炒菜;提高做饭的效率
多个CPU同时协助执行提高效率。

单进程

进程的概念:一个正在打开运行中的程序就称为进程,
通俗理解就相当于QQ,微信运行起来的程序
打开后就变成了一个各自独立的进程,任务管理器中可查看,
一个运行起来的程序至少有一个进程。

多进程

多个运行起来的程序就是一个多进程;
简单理解 :
在家想做饭吃牛肉和螃蟹,为了提高效率叫表弟去买螃蟹,表妹去买虾,自己则在家里煮饭,来提高想吃饭的效率。
多任务同时执行充分调用CPU资源来提高效率。
主进程和子进程同时执行。

单线程 / 多线程

线程是程序执行的最小单位,线程是依附于进程中执行的,一个程序默认最少都会有一个线程。
简单理解:
你有一个想接满水的大盆,(线程好比水龙头)你开一个水龙头接水,和开多个水龙头接水,效率远远不一样。
就像打开QQ 后想和多个人聊天,打开多个聊天窗口(多个线程)的聊天一样,实现多任务的同时节省了资源。

multiprocessing模块-———基于进程的并行

进程的创建步骤
(1)导入进程包

#先导入包
import multiprocessing

(2)通过进程类创建进程对象
进程对象 = multiprocessing.Process()
(3)启动进程执行任务
进程对象.start()
通过进程类创建进程对象
进程对象 =multiprocessing.Process(target=任务名)
任务名就是接下来的函数名 注意的是任务名不要(),不然就是调用,这里是为了多进程的索引。

参数名 说明
target 执行目标的名
name 进程名,默认系统设置,可手动指定
group 进程组,目前None
# 唱歌
def sing():
    for i in range(3):
        print('小明', end='')
        print('唱歌----')
        time.sleep(0.5)
# 跳舞
def dance():
    for i in range(3):
        print('小花', end='')
        print('跳舞----')
        time.sleep(0.5)
        
if __name__ == '__main__':
	start_time= time.time()  #计时
    dance()
    sing()
    end_time = time.time()
    all_time = end_time-start_time
    print(f'时间:{
     all_time}')

在这里插入图片描述

——可以看到函数的调用就是单个执行——总时间
想在快点 执行完成 。
我们再更改一下唱跳一起执行:

	if __name__ == '__main__':
	
	start_time= time.time()  #开始计时
    dance_process = multiprocessing.Process(target=dance,)
    sing_process = multiprocessing.Process(target=sing)

    dance_process.start()  #启动子进程
    s
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值