关于java多线程
1、在java中,Object类中的wait和notify、notifyall用于实现线程之间的协作。用syn关键字来实现互斥。
关于类的锁和对象的锁,书中是这样描述的:类锁是用对象锁实现的。在虚拟机加载class文件的时候,给加载的相应的类一个Class实例。那么在这个class实例上加锁,就实现了类的锁。
使用syn关键字,可以创建互斥语句和互斥方法(区别就是把关键字加在方法之前,还是包围语句块)。当线程执行到syn语句块的时候,从java栈中弹出objectref(对象的锁的引用),检查自己如果已经拥有了这个锁,则锁的计数器加1.每次当monitorexit的时候,锁的数目减1.当锁为0,对象就被释放了。
关于同步方法,下面描述很明白: