Java程序设计(十一)资料.ppt

* 多线程的同步处理 -多线程共享内存引发的问题(2) 多线程访问共享内存引发问题的例程(J_ThreadSum.java, P402):加减法失败。 程序分析: 1)m_data是类静态成员域,实际是上t1和t2的共享数据; 2)t1和t2的并发运行会导致加1或减1的操作无法正确完成。 * 多线程的同步处理 -多线程同步的基本原理(1) 为了正确地并发访问共享数据,Java虚拟机采用了锁机制来实现多线程的同步处理。 Java虚拟机既可对实例对象加锁,也可对类对象加锁。 类对象的引用可通过类java.lang.Class的如下成员方法获取: 静态成员属于类对象,非静态成员属于实例对象。 public static Class forName(String className) throws ClassNotFoundException * 多线程的同步处理 -多线程同步的基本原理(2) 锁机制原理示意图 * 多线程的同步处理 -多线程同步的基本原理(3) 锁机制原理:Java虚拟机为每个对象配备了一把锁(lock)和一个等候集(wait set)。对于每个加锁对象,实际锁住的是一些同步方法和同步语句块。 通过锁机制,可确保任何同一时刻内最多只有一个线程能够运行与该对象相关联的同步方法和同步语句块。 1)同步

文档评论(0)

1亿VIP精品文档

相关文档