简单的死锁

一、定义

  线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便占有了资源,直到它退出该代码块或者调用wait方法,才释放资源,在此期间,其他线程将不能进入该代码块。当线程互相持有对方所需要的资源时,会互相等待对方释放资源,如果线程都不主动释放所占有的资源,将产生死锁。

二、代码测试

为了显得更真实,再加个时间的线程

可以看到,随着时间的变化,ob----true-------和oa----false-------这两个一直没有打出来,因为这两个线程之间存在死锁。

打印时间的线程是自由的。

 

posted @ 2018-04-19 17:06  追梦少年_09  阅读(86)  评论(0编辑  收藏  举报