摘要: 1.关键字synchronized 如果一个方法声明为synchronized,那么调用这个方法要求拥有对象的锁。如果这个锁被另一个线程所拥有,线程又调用synchronized方法块,那么线程会被放入对象锁的进入集合。进入集合表示等待锁 可用线程的集合。 如果当调用一个synchronized方法时,锁可用,那么调用线程成为对象锁的所有者,可进入该方法。 当线程退出方法时,释放锁。如果释放锁时锁的进入集合不为空,JVM任意选择该集合中的线程作为锁的所有者(“任意”,大多数虚拟机按照FIFO策略排列等待集合中的线程)。2.Java中的线程同步 同步可重入锁 信号量 条件变量 线程Synchro 阅读全文
posted @ 2011-05-28 20:33 跳刀的兔子 阅读(1530) 评论(0) 推荐(0)
摘要: 进程同步之经典同步问题1.有限缓存问题 生产者通过调用insert()函数,将一个数据项放入缓冲区;消费者通过调用remove()移出数据项。public class BoundedBuffer { private static final int BUFFER_SIZE = 5; //缓冲区的容量 private Object[] buffer; private int in,out; private Semaphore mutex; //提供了对缓冲区访问的互斥要求,初始化为1 private Semaphore empty; //表示空缓冲项的个数,初始化为缓冲区的容量 private 阅读全文
posted @ 2011-05-28 18:38 跳刀的兔子 阅读(595) 评论(0) 推荐(0)