在多线程编程中,同步块(synchronized block)用于保护代码块,使得同一时间只有一个线程能够执行该代码块,从而避免并发问题。同步块使用一个对象作为锁,确保在同步块内对共享资源的访问是线程安全的。
1. 什么是同步块?
同步块是 Java 中的一种同步机制,用于保护代码块,以确保同一时间只有一个线程能够执行该代码块。同步块通过一个对象的监视器(锁)来实现,即只有获得该对象的监视器的线程才能执行同步块内的代码。
2. 语法
synchronized (lockObject) {// 代码块
}
lockObject
是一个对象,用作锁。- 同步块中的代码在
lockObject
被锁定时执行。
3. 例子解释
synchronized (synchronizedList) {Iterator<String> iterator = synchronizedList.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}
}
-
锁对象
synchronizedList
:synchronizedList
是一个线程安全的集合,通常通过Collections.synchronizedCollection
方法获得。synchronizedList