关于多任务编程与互斥锁

多任务的概念:
多任务是指在同一时间内执行多个任务。

多任务的执行方式分为两种:
1.并发:
在同一短时间内交替执行不同的任务(单核的CPU)。
2.并行:
利用多核CPU来同时执行不同的任务(多核CPU)。

多任务编程方式分为三种:
1.进程
1.1一个正在运行中的程序或者软件就称为进程,他是操作系统进行资源分配的基本单位。
1.2一个程序里面一定会有一个进程,一个进程里面默认有一条线程,进程里面可以创建多个线程,线程是依附在进程里面的,没有进程得话就没有线程
1.3进程里面是不共享全局变量的,主进程会等待子进程结束后再结束

2.线程
		2.1线程是进程中的一个分支,想要分支(线程)工作执行代码需要cpu进行调度,也就是说线程是cpu调度的基本单位,每一个进程里至少会有一个线程,而这个线程就是主线程
		2.2线程和进程不同,线程是共享全局变量的,而相同的是线程也会等待所有的子线程执行结束后再结束,但是会有不好的地方就是 线程执行的顺序是无序的,并且共享全局变量的时候会出现数据的错误。
	
3.协程
	3.1协程,又称微线程,纤程, 它是在不开辟线程的基础上完成多任务,它是python中实现多任务的另外一种方式。只不过比线程更加节省资源,协程是更小的一个执行单元。
	优点:
	3.2比线程完成要节省资源	没有多线程的锁机制,因为只有一个线程,在协程中操作共享资源不加锁,所以执行效率比多线程高很多。

互斥锁:
概念:互斥锁: 对共享数据进行锁定,保证同一时刻只能有一个线程去操作。要注意的是互斥锁是多个线程一起去抢,抢到锁的线程先执行,没有抢到锁的线程需要等待,等互斥锁使用完释放后,其它等待的线程再去抢这个锁。
优点:
1.互斥锁的作用就是保证同一时刻只能有一个线程去操作共享数据,保证共享数据不会出现错误问题
2.使用互斥锁的好处确保某段关键代码只能由一个线程从头到尾完整地去执行
缺点:
1.使用互斥锁会影响代码的执行效率,多任务改成了单任务执行。
2.互斥锁如果没有使用好容易出现死锁的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值