长姿势了,原来这才是多线程的正确实现方式!

Java专栏

共 1311字,需浏览 3分钟

 · 2021-10-13

最近,这条字节员工发布的朋友圈一夜刷爆网络字节跳动大裁员的消息,引起了行业内的巨大震荡。
图片来源:网络

这次真的是不想跳槽也得跳槽了…,然后,竟然死在了上大学时候的一道题上,早知道大学好好学不泡妹子了

题目长这样式儿:假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭或者思考

吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。

不过哲学家从来不交谈,这就很危险,可能产生死锁,每个哲学家都拿着左手的餐叉,永远都在等右边的餐叉(或者相反)。

即使没有死锁,也有可能发生资源耗尽。例如,假设规定当哲学家等待另一只餐叉超过五分钟后就放下自己手里的那一只餐叉,并且再等五分钟后进行下一次尝试。

这个策略消除了死锁,但仍然有可能发生活锁。

如果五位哲学家在完全相同的时刻进入餐厅,并同时拿起左边的餐叉,那么这些哲学家就会等待五分钟,同时放下手中的餐叉,再等五分钟,又同时拿起这些餐叉。

在实际的计算机问题中,缺乏餐叉可以类比为缺乏共享资源。

一种常用的计算机技术是资源加锁,用来保证在某个时刻,资源只能被一个程序或一段代码访问。

当一个程序想要使用的资源已经被另一个程序锁定,它就等待资源解锁。当多个程序涉及到加锁的资源时,在某些情况下就有可能发生死锁。

例如,某个程序需要访问两个文件,当两个这样的程序各锁了一个文件,那它们都在等待对方解锁另一个文件,而这永远不会发生。

具体落地到代码,你知道如何实现吗?学会这道题,之后面试官再问你的时候就再也不怕了,纯纯的加分项!

推荐你来听一下马老师这次的训练营,老牛X了除了这道经典的哲学家就餐问题,还有剩下的5道线程题,一个比一个狠。。。

报名方式,我放下面了!具体的你们可以看看大纲。而且马老师还在直播间给大家准备了超多的福利!

扫下方二维码,才能获取上课权限

01

听完可以得到什么?

在你认真听完本次的直播课后,我相信你一定会有以下几个方面的提升!

  1. 系统梳理线程的执行流程及各阶段状态

  2. 从全局思考如何解决业务问题,而不是局限于某个方面;

  3. 提高代码质量和瓶颈定位及调优能力;

  4. 助力面试中表现出色,取得更高水平的薪资;

  5. 对照知识体系,查漏补缺。

  6. 系统掌握一线互联网大厂的多线程知识体系和优化方案

参与本期训练营获得以下三大福利

福利一:160道大厂面试题

福利二:1700页面试必问电子书

福利三:听课有奖

机会稍纵即逝,把握住现在

未来的质变或许就在这一瞬间
2节课 300分钟 
 直击升职加薪难的问题 
▼长按下方二维码报名▼

扫码立即参与,仅剩53个名额
       
       
(内容的价值取决于您的行动,千万莫做收藏家)

Q&A


Q:如何获取上课链接?
A:扫码后,根据指引添加助教小姐姐,助教小姐姐及时通过好友,请耐心等候~

Q:学习方式是怎样的?
A:本次训练营为全程直播分享,遇到任何问题都可以咨询助教或在直播间提问。



浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报