Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java 并发

作者:战天独尊   发布日期:2025-06-28   浏览:86

// Java并发编程示例:使用线程和同步

class Counter {
    private int count = 0;

    // 同步方法,确保同一时间只有一个线程可以访问该方法
    public synchronized void increment() {
        count++;
    }

    public int getCount() {
        return count;
    }
}

public class ConcurrencyExample {

    public static void main(String[] args) throws InterruptedException {
        Counter counter = new Counter();

        // 创建多个线程来同时增加计数器的值
        Thread thread1 = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                counter.increment();
            }
        });

        Thread thread2 = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                counter.increment();
            }
        });

        // 启动线程
        thread1.start();
        thread2.start();

        // 等待线程执行完毕
        thread1.join();
        thread2.join();

        // 输出最终的计数值
        System.out.println("Final count: " + counter.getCount());
    }
}

解释说明:

  • Counter 类:包含一个 count 变量和一个 increment 方法。increment 方法是同步的(使用 synchronized 关键字),以确保在多线程环境中只有一个线程能够同时执行该方法,从而避免竞争条件。
  • ConcurrencyExample 类:创建了两个线程,每个线程都会调用 increment 方法 1000 次。通过 join 方法确保主线程等待子线程执行完毕后再输出最终的计数值。

这个例子展示了如何使用同步机制来确保线程安全,并且正确地处理并发问题。

上一篇:java有序map

下一篇:java修饰符

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站