在学习Java的道路上,是否路过多线程时总让你很迷惘;很不巧,我也是,而使我们感到很迷惘主要原因都源于没有对概念的深深的理解和实践。所以我决定漫步Java多线程,同你一起会会多线程。
多线程系列
多线程系列一:理解多线程在于深深地理解了多任务、进程、多线程、线程
多线程系列二:手撕多线程,从会三种创建多线程方式开始:除了常见的两种,你是否了解Callable接口方式?
多线程系列三:初遇并发问题:从一个小故事开始,从一行行代码开始
多线程系列四:停止多线程,你不会还以为是用stop和destroy吧?
多线程系列五:多线程为何要使用休眠?
多线程系列六:线程礼让与强制执行
多线程系列七:纯手绘图解多线程状态+代码示例,就问你怕了吗?
多线程系列八:多线程的优先级
多线程系列九:守护线程
多线程系列十:通过案例体会多线程的不安全(案例+代码示例)
1.死锁概念
多线程因竞争资源而导致两个或者多个线程僵持(相互等待),停止执行的现象。
当一个同步块同时拥有两个以上对象的锁,就可能会发生"死锁"问题。
2.故事场景
从那遥远的地方,
有两头羊要过窄窄的独木桥,分别有白羊和黑羊,
它们各自都要前往对面桥一方,
可是窄窄的桥同时只能过去一只,
所以彼此僵持…