2018年2月11日
摘要: 在有些情况下死锁是可以避免的。本文将展示三种用于避免死锁的技术: 加锁顺序 当多个线程需要相同的一些锁,但是按照不同的顺序加锁,死锁就很容易发生。 如果能确保所有的线程都是按照相同的顺序获得锁,那么死锁就不会发生。看下面这个例子: 如果一个线程(比如线程3)需要一些锁,那么它必须按照确定的顺序获取锁 阅读全文
posted @ 2018-02-11 16:37 敢闯敢做 阅读(2183) 评论(0) 推荐(0)
摘要: 1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRI 阅读全文
posted @ 2018-02-11 15:45 敢闯敢做 阅读(110) 评论(0) 推荐(0)