java中关键字Synchronized的理解及用法
今天在看Java多线程的视频中又一次接触到synchronized的这个关键字,这个关键字用得比较少,平时也一般没怎么接触到。不过在多线程处理中却经常会用到它,为什么呢?
别看字面synchronize 是同步的意思,但它出于安全因素,却做了相反的事。锁住某一方法或者某一代码块,使其在同一时刻只能由某一线程去操作它。其他线程想要执行这个方法或者代码块的话则必须等待其执行完。
如何用它?
用法有两类:
第一类:锁住方法;
如 public synchronized void method() {}
在方法前面加synchronized关键字,这样当多个线程同时调用这个方法时,当前使用这个方法的线程会将它锁住,直到它用完才解锁,这样等待的想使用它的线程才能使用它。
第二类:锁住代码块:
如:public void method()
{
synchronized (this){ };
}
下面参考网站介绍的相当详细:
java中synchronized用法