java2008_ch11_线程.ppt

互斥的存/取款线程设计例程说明 通过加锁方式实现对象的互斥访问 即使线程执行被打断,也不释放对象的锁,直到线程执行完才释放对象的锁 通过互斥访问,保证数据的完整性和一致性。 线程间的协作关系与线程同步 线程间的协作关系 线程间的制约关系 多个线程为完成同一任务而分工协作, 每个线程独立地执行,需要协作线程间在某些协调点上协调各自工作。 线程间的协作关系与线程同步 发送线程与接收线程(Buffer.java) 下图是发送线程与接收线程通过缓冲区实现数据传递 线程间的协作关系与线程同步 线程同步机制:采用信号量和PV操作(受到信号灯管理交通启发) 背景:线程互斥访问共享变量 设置信号量(多种状态) P操作:测试信号量状态 V操作:改变信号量状态 两个操作互斥执行,不能中断 线程根据信号量状态而执行 状态合适(信号量为true)则线程执行,改变信号量状态(false),唤醒其他线程; 否则等待,直到被唤醒 线程间的协作关系与线程同步 Java的线程通信方法 public final void wait() throws InterruptedException //等待,直到notify/notifyAll唤醒 public final native void wait(long timeout) throws InterruptedExc

文档评论(0)

1亿VIP精品文档

相关文档