摘要:
1.多线程协调 synchronized解决了多线程竞争的问题,我们可以在synchronized块中安全的对一个变量进行修改,但是它没有解决多线程协调的问题。 例如设计一个TaskQueue,内部通过LinkedList()表示一个队列。addTask()将新任务放入队列,getTask()取出队 阅读全文
摘要:
在多线程编程中,要执行synchronized块,必须首先获得指定对象的锁。 1.Java的线程锁是可重入的锁 什么叫可重入的锁? 对同一个对象,同一个线程,可以多次获取它的锁,即同一把锁可以嵌套。 在add方法中,用synchronized获取了一个lock对象的锁,在synchronized代码 阅读全文
摘要:
1.对Java方法进行加锁 Java使用synchronized对一个对象进行加锁,也就可使用synchronized对一个方法进行加锁。 在执行synchronized语句时,我们首先获得synchronized指定的锁。当我们添加synchronized语句块的时候,首先需要注意的是锁住那个对象 阅读全文