最近,这条字节员工发布的朋友圈一夜刷爆网络,字节跳动大裁员的消息,引起了行业内的巨大震荡。
图片来源:网络
这次真的是不想跳槽也得跳槽了…,然后,竟然死在了上大学时候的一道题上,早知道大学好好学不泡妹子了
题目长这样式儿:假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭或者思考
吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。
不过哲学家从来不交谈,这就很危险,可能产生死锁,每个哲学家都拿着左手的餐叉,永远都在等右边的餐叉(或者相反)。
即使没有死锁,也有可能发生资源耗尽。例如,假设规定当哲学家等待另一只餐叉超过五分钟后就放下自己手里的那一只餐叉,并且再等五分钟后进行下一次尝试。
这个策略消除了死锁,但仍然有可能发生活锁。
如果五位哲学家在完全相同的时刻进入餐厅,并同时拿起左边的餐叉,那么这些哲学家就会等待五分钟,同时放下手中的餐叉,再等五分钟,又同时拿起这些餐叉。
在实际的计算机问题中,缺乏餐叉可以类比为缺乏共享资源。
一种常用的计算机技术是资源加锁,用来保证在某个时刻,资源只能被一个程序或一段代码访问。
当一个程序想要使用的资源已经被另一个程序锁定,它就等待资源解锁。当多个程序涉及到加锁的资源时,在某些情况下就有可能发生死锁。
例如,某个程序需要访问两个文件,当两个这样的程序各锁了一个文件,那它们都在等待对方解锁另一个文件,而这永远不会发生。
具体落地到代码,你知道如何实现吗?学会这道题,之后面试官再问你的时候就再也不怕了,纯纯的加分项!
最佳学习路线 接下来,我们再来依次看下具体要学习哪些知识吧。并发基础
Java并发集合
并发工具类
Java内存模型(JMM)
线程池
阻塞队列
锁
Atomic
其他
如果你想进大厂,想升职加薪,或者对自己现有的工作比较迷茫,可以继续往下看,针对以上导图并发编程知识内容,小编给大家准备了三份对应的学习资料《并发编程原理》《Java并发编程的艺术》《Java并发编程的实践》希望下面的内容能帮助到大家。
并发编程最佳学习路线完整Xmind及《并发编程原理》《Java并发编程的艺术》《Java并发编程的实践》完整PDF文件



