java程序设计项目教程教学课件作者林邓伟项目8.pptVIP

  • 2
  • 0
  • 约7.03千字
  • 约 48页
  • 2019-10-11 发布于广东
  • 举报

java程序设计项目教程教学课件作者林邓伟项目8.ppt

8.3 项目支撑知识 synchronized方法 通过在方法声明中加人synchronized关键字来声明synchronized方法。如: public synchronized void accessVal(int newVal); synchronized方法控制对类成员变量的访问:每个类实例对应一把锁,每个synchronized方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞。方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,重新进人可执行状态。 上一页 下一页 返回 8.3 项目支撑知识 这种机制确保了同一时刻对于每一个类实例,其所有声明为synchronized的成员函数中至多只有一个处于可执行状态(因为至多只有一个能够获得该类实例对应的锁),从而有效避免了类成员变量的访问冲突(只要所有可能访问类成员变量的方法均被声明为synchronized。 在Java中,不只是类实例,且每一个类也对应一把锁,这样我们也可将类的静态成员函数声明为synchronized,以控制其对类的静态成员变量的访问。 上一页 下一页 返回 8.3 项目支撑知识 synchronized方法的缺陷:若将一个大的方法声明为synchronized将会大大影响效率,典型地,若将线程类的方法run()声明为synchronized,由

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档