序言
在开发中,避免不了多任务的操作,往往一个线程很难满足任务需要,所以就有了多线程,并行的任务,但是当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题,其中的一种解决方式就是使用synchronized关键字
使用
synchronized主要有四种用法:
- 第一是在方法声明时使用
放在范围操作符(public等)之后,返回类型声明(void等)之前。这时,线程获得的是 成员锁,即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在Synchronized方法内部的线程)执行完该方法后,别的线程才能进入,例:
public synchronized void method() {
// do something
}