synchronized 锁,他是一个java 的关键字,能够保证同一线程只有一个线程访问或使用此修饰的代码块
用法 synchronized方法,synchronized块
synchronized方法:public synchronized void accessVal(int newVal
synchronized块:
synchronized(syncObject) {
//允许访问控制的代码
}
总结:当一个syc锁被第一个拿到时,第一个拿到的享有优先使用权,其他使用这个syc锁的必须等待,即等待第一个拿到的使用完成。这是针对于同一个对象而言,如果是不同的对象,不同的对象会产生不同的锁实例,所以这个锁
只针对同一个对象。
同步类,一个类如果有加锁,但是如果类中并没有加锁的方法和加锁的方法块,外部如果有不同线程调用,那么其实对于这个加锁有没有并没有什么影响,因为都不是加锁的方法,他们仍可以正常执行。
//博客推荐,这个是博客园我感觉写的比较好的锁的介绍
https://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.html