摘要: 前言 死锁单独写一篇文章是因为这是一个很严重的、必须要引起重视的问题。这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可能要执行数十亿次获取锁->释放锁的操作,只要在这数十亿次操作中只要有一次发生了错误,就可能导致程序中发生死锁,并且即使通过压力测试也不可能找出所有潜 阅读全文
posted @ 2015-10-03 18:54 五月的仓颉 阅读(30773) 评论(15) 推荐(31) 编辑
摘要: 同步静态方法 synchronized还可以应用在静态方法上,如果这么写,则代表的是对当前.java文件对应的Class类加锁。看一下例子,注意一下printC()并不是一个静态方法: 写三个线程分别调用这三个方法: 写个main函数启动这三个线程: 看一下运行结果: 从运行结果来,对printC( 阅读全文
posted @ 2015-10-03 18:20 五月的仓颉 阅读(7524) 评论(24) 推荐(1) 编辑
摘要: synchronized同步代码块 用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法执行一个较长时间的任务,那么B线程必须等待比较长的时间。这种情况下可以尝试使用synchronized同步语句块来解决问题。看一下例子: 运行结果,分两部分来看: 这个实验可以得 阅读全文
posted @ 2015-10-03 15:08 五月的仓颉 阅读(16248) 评论(11) 推荐(4) 编辑