用白话理解线程,互斥锁

多线程

同样附上百度百科。很复杂。

线程,大家都懂,程序运行起来后,执行代码的东西。
多线程呢,由多个子线程,同时处理,程序运行更快捷。

速度是快了,但是会有一个问题,共享资源。就会出现资源互相占用,抢资源的问题
比如说,两个子线程,同时运行一个程序,比如同时算数,加到1个亿。这个时候就会出现打架,或者卡住的现象。

这个时候就需要互斥锁。相当于大家排队上厕所。如果这个厕所门上没锁,那谁来了,都得进一下。但是如果有锁呢,可以很有效的避免这种尴尬的局面。

但是还有一种尴尬的局面,就是死锁。
就好像,两个人搞对象,吵架了,男女置气,谁也不理谁,都等着对方先道歉。
同样,两个子线程,A需要B先执行,B需要A先执行,但是A B都已经锁上了,这种情况就是死锁。卡住了说白了。

解决方法,添加超时 拿厕所举例,你上一会儿,时间太长,门外有人敲门让你出来,他进去。
另外一种,银行家算法。大概意思就是从源头阻止这种情况的发生。有种金融里面,止损的感觉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值