自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 几种常见的锁

我们在开发中使用的几种常见的锁主要有互斥锁、自旋锁、读写锁、乐观锁和悲观锁这五种。1、互斥锁互斥锁加锁失败后,线程会释放CPU,给其他进程使用。自旋锁加锁失败后,线程会忙等待,知道它拿到锁。互斥锁是一种独占锁,比如当线程A加锁成功后,此时互斥锁已经被线程A独占了,只要线程A没有释放手中的锁,线程B加锁就会失败,于是就会释放CPU给其他线程,既然线程B释放了CPU,自然线程B加锁的代码就会被阻塞。对于互斥锁加锁失败而阻塞的现象,是由操作系统内核实现的。当加锁失败时,内核会将线程置为睡眠状态,等到锁被

2022-04-13 19:13:24 2687

原创 死锁问题总结

死锁1、死锁产生的条件死锁只有同时满足一下四个条件才会发生:(1)互斥条件互斥条件是指,多个线程不能同时使用同一个资源。(2)持有并等待条件持有并等待条件是指,当线程A已经持有了资源1,又想申请资源2,而资源2已经被线程B持有了,所以线程就会处于等待状态,但是线程A在等待资源2的同时并不会释放自己已经持有的资源1。(3)不可剥夺条件不可剥夺条件是指,当线程已经持有了资源,在自己使用完之前不能被其他线程获取。(4)循环等待条件循环等待条件是指,在死锁发生的时候,多个线程获取资源的顺序构成了

2022-04-13 16:20:34 728

原创 忙等待锁和无忙等待锁

锁的类型根据锁的实现不同,可以分为忙等待锁和无忙等待锁。(1)忙等待锁忙等待锁就是当获取不到锁资时,线程就会一直 while 循环,不做任何事情,所以就被成为忙等待锁,也被称为自旋锁。(2)无忙等待锁无忙等待锁就是当获取不到锁资源时,线程不用自旋,而是把当前线程放入到锁的等待队列,然后执行调度程度,把CPU让给其他线程执行。...

2022-04-13 15:34:56 786

原创 进程间通信的方式

进程间通信的方式进程间通信的方式一共有六种,分别是:管道、消息队列、共享内存、信号量、信号和socket。1、管道(1)我们创建管道实际上就是在内核中创建一块缓冲区,发送方拷贝数据到这块内核缓冲区中,接收方从这块内核缓冲区中拷贝数据到自己的用户空间。(2)管道内传输的数据都是字节流,并且都是单向的,如果我们想进行进程间的双向通信,就必须创建两个管道。(3)管道分为匿名管道和有名管道,匿名管道只能在具有“父子关系”的进程间通信,因为管道没有实体,也就是没有管道文件,只能通过fork()来复制父进程f

2022-04-13 15:27:14 235

原创 关于系统调用、异常和中断

操作系统学习笔记一、系统调用、异常和中断的区别1.来源(1)系统调用:来源于应用程序,应用程序主动向操作系统发出服务请求。(2)异常:来源于不良的应用程序,就是是非法指令或其他坏的处理状态。(3)中断:来源于外设,来自不同的硬件设备的计时器和网络的中断。2.操作系统对于它们的响应状态(1)系统调用:等待和持续。(2)异常:杀死或重新执行。(3)中断:持续,但对于用户应用程序来说是透明的。3.处理时间(1)系统调用:同步或异步。(2)异常:同步。(3)中断:异步。二、关于系统调用

2022-03-27 21:36:11 3274

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除