Java提供了synchronized,给出使用代码
时间: 2023-12-11 19:06:09 浏览: 23
synchronized是Java中常见的一种同步机制,可以保证多个线程访问共享资源时的线程安全。以下是一个使用synchronized的示例代码:
```java
public class SynchronizedExample {
private int count = 0;
private Object lock = new Object();
public void increment() {
synchronized (lock) {
count++;
System.out.println("线程" + Thread.currentThread().getName() + "执行了加1操作,当前count值为:" + count);
}
}
public static void main(String[] args) {
SynchronizedExample example = new SynchronizedExample();
for (int i = 0; i < 5; i++) {
new Thread(() -> {
for (int j = 0; j < 3; j++) {
example.increment();
}
}, "Thread-" + i).start();
}
}
}
```
在上面的代码中,increment()方法是一个加1操作,使用synchronized关键字来保证了多个线程访问时的线程安全。在main()方法中,创建了5个线程来执行increment()方法,每个线程执行3次,最终输出结果如下:
```
线程Thread-0执行了加1操作,当前count值为:1
线程Thread-0执行了加1操作,当前count值为:2
线程Thread-0执行了加1操作,当前count值为:3
线程Thread-3执行了加1操作,当前count值为:4
线程Thread-3执行了加1操作,当前count值为:5
线程Thread-3执行了加1操作,当前count值为:6
线程Thread-4执行了加1操作,当前count值为:7
线程Thread-4执行了加1操作,当前count值为:8
线程Thread-4执行了加1操作,当前count值为:9
线程Thread-2执行了加1操作,当前count值为:10
线程Thread-2执行了加1操作,当前count值为:11
线程Thread-2执行了加1操作,当前count值为:12
线程Thread-1执行了加1操作,当前count值为:13
线程Thread-1执行了加1操作,当前count值为:14
线程Thread-1执行了加1操作,当前count值为:15
```
可以看到,多个线程访问共享资源时,使用synchronized关键字可以确保线程安全。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)