多线程 1. 对死锁的了解,怎么解决? 1. 概念 不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成的线程的死锁。举个例子,哲学家就餐问题,一人只有一个筷子,需要两只筷子才能吃饭。 2.产生的条件 互斥条件,占用且等待,不可以抢夺,循环等待。四个条件同时出现会触发死锁。 3.解决办法 让产生的条件不成立。 条件1:基本上无法被破坏,因为线程需要通过互斥解决安全问题 条件2:考虑一次性申请所有的资源,就不存在等待问题 条件3:占用资源的线程在进一步申请其他资源时,如果申请不到,就主动释放掉已经占用的资源 条件4:可以将资源改为线性资源,申请资源时,先申请序号较小的,这样可以避免循环等待的问题
点赞 评论

相关推荐

10-27 01:19
已编辑
哈尔滨工程大学 Java
牛友们好,先说一下我的背景吧,本科四非大学,硕士大家看到了,成绩垫底,无竞赛无奖学金,实习仅有不对口的两个月研究所经历。秋招期间走的方向是Java,只有一个苍穹外卖的单体项目经历(当然了我改了名字还做了一些分布式和缓存等的包装),这次秋招0 offer,基本上秋招已经是凉了。目前离春招还有4个多月,还不想放弃,所以我差不多11月开始就要为春招做准备了。目前我大概考虑的方向有3个:第一个是在这4个月里吃透微服务,搞一个微服务的项目出来,春招继续卷Java;第二个是转前端,因为前端给我感觉比Java松弛很多,好几次我都被前端面试给捞了;第三个是转Android,因为据我实验室朋友说这次Android应聘的人也挺少的,他好几次被Android捞了,而且我本科毕设也有开发Android的经历。继续卷Java的话,四个月整微服务时间倒是来得及,但是毕竟Java今年实在是卷到没母亲,不确定多一个微服务项目能不能行,担心还是会是像秋招一样的反馈;转前端感觉时间有点不太够用,要想把前端从三件套到Vue到React全都吃透还是挺费时间的;转Android倒是时间够用也不卷,毕竟有本科毕设经历了捡起来也容易,但是Android在大家的说法里已经凉了好几年了,而且相当于完全换了赛道。不太敢冒险。想咨询下大家的意见,看看自己选择哪条路比较好。我也给自己几天思考时间,大概11月之前做好决定。 #参加完秋招的机械人,还参加春招吗?# #机械人春招想让哪家公司来捞你?#
铠甲合体:确实,感觉Java人真的太多了
点赞 评论 收藏
分享
牛客网
牛客企业服务