44.Python进阶_并发和并行

并发和并行:

CPU和多任务的关系:

单核CPU可以执行多任务吗?
也可以执行多任务,由于CPU执行代码都是按照顺序执行,那么单核CPU如何执行多任务?就是让操作系统轮流让每个任务交替执行。运行速度很快情况下,就感觉是同时执行;

真正的并行执行只能在多核cpu上实现。但是任务远远多于CPU内核数量,所以操作系统也会自动把多任务轮流执行执行;

并发和并行:

并发:

指的是任务数多于cpu内核数,通过操作系统的各种任务调度算法,实现多个任务一起执行,(实际就是切换很快,看上去像是一起执行)

并行:

任务数小于等于cpu内核数,即任务真的一起执行;

在这里插入图片描述

同步和异步:

同步(同步协调):

是指线程访问某个资源时,获得了资源的返回结果之后才会执行其它操作,(先做一件事,再做某件事)

异步:

与同步相对,是指线程访问某个资源时,无论是否取得返回结果,都进行下一步操作,当有了资源返回结果时,系统自动通知线程;
在这里插入图片描述在这里插入图片描述

先来看两个任务执行单线程过程;
import time
from threading import Thread
def warpper(func):
    def count_time():
        start_time = time.time()
        func()
        end_time=time.time()
        print('函数运行时间是:{:.5f}'.format(end_time-start_time))
    return count_time
def work1():
    for i in range(6):
        time.sleep(1)
        print('----work1--------')
def work2():
    for i in range(5):
        time.sleep(1)
        print('----work2--------')
@warpper
def main():
    work1()
    work2()

main()

运行结果:

----work1--------
----work1--------
----work1--------
----work1--------
----work1--------
----work1--------
----work2--------
----work2--------
----work2--------
----work2--------
----work2--------
函数运行时间是:11.00377

由上线运行结果基本就是两个任务原本执行时间相加的结果;

下一节我们再对比一下多线程执行过程;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值