八股文0812

线程通信的方式
线程之间是共享资源的,可以直接通信。但是要考虑线程同步的问题,线程同步的方式:
1、互斥锁:当一个线程要访问某共享资源时,要先获取这个资源的互斥锁,如果这个锁已经被别的线程占有,那么这个线程就不能访问这个共享资源
2、读写锁:允许多个线程对共享资源进行读操作,但只允许一个线程对共享i资源进行写操作
3、信号量:是一种计数器,用来控制有限个线程对共享的访问
4、条件变量:当线程满足某个条件变量时才能访问资源
5、自旋锁:当线程访问被其他线程占用的共享资源时,不马上进入阻塞状态,而是循环等待锁被释放,适用于锁持有时间比较段的场景

进程和线程的区别:
进程是资源调度的基本的单位,线程是系统执行的最小单位,进程的内存是相互隔离的,一个进程的奔溃不会影响其他进程;线程是共享同一块资源,线程的奔溃可能会导致整个进程奔溃;进程之间相互隔离,因此通信的方式是比较特使的,管道,消息队列,共享内存;线程之间直接通信;进程创建和销毁的开销比线程大,并且切换进程时需要保存进程的状态,线程切换时只需要保存上下文

并行和并发的区别
并行是同一时刻执行多个任务
并发是同一时间段执行多个任务,任务交替进行

互斥和同步
同步:控制多个进行按照一定的顺序执行
互斥:统一时间内只允许一个进程访问共享资源

线程与协程
线程的创建、切换和销毁都销毁系统的资源,协程依赖编译语言实现,也称作用户态线程,开销比较小。线程为并行而生,斌且是同步机制,协程为并发而生,是异步机制。线程是抢占式资源,自动切换,协程是非抢占式资源,需要手动切换

什么是死锁、死锁的必要条件、如何破坏
死锁:多个进程抢占同一共享资源而陷入死锁状态
必要条件:互斥,不可抢占,请求保持,循环等待
破坏掉其中一个就行
不可抢占:让优先级高的抢占优先级低的
请求保持:如果进程一直请求不到资源,必须释放掉所持有的资源
循环等待:进程只能向前请求资源不能向后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值