多线程总结


对于多线程如何找到应该加锁的部分的步骤是:

1、先要明确那些是多线程操作的语句;

2、从操作语句中找到共享数据;

3、通过共享数据找出操作共享数据的操作语句;

4、对语句进行分析是否有加锁的必要;

对于死锁有四个必要条件:

(a)、互斥使用(资源独占)

一个资源每次只能给一个进程

(b)、不可强占(不可剥夺)

     资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放

(c)、请求和保持(部分分配,占有申请)

一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配)

(d)、循环等待

存在一个进程等待队列

  {p1,p2,......,pn}

 其中p1等p2的占有资源,p2等待p3的占有资源,以此类推

对于死锁的个人理解是,例如有两个锁,一个锁中的资源请求另一个锁中的资源,可另一个所中的资源请求本锁的资源,两者互不相让最终产生死锁。在编写程序中同步中嵌套同步会出现死锁的问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值