Java创建两个线程共享变量打印

引言

在Java中,可以通过创建多个线程来实现并发执行的效果。当多个线程需要共享同一个变量时,需要注意线程安全的问题。本文将介绍如何使用Java创建两个线程并共享变量打印的方法。

整体流程

以下是整个流程的步骤表格:

journey
    title Java创建两个线程共享变量打印的流程

    section 创建两个线程并共享变量打印
    创建线程对象 | 创建两个线程Thread1和Thread2
    创建共享变量 | 创建一个共享变量sharedVariable
    实现线程任务 | 实现Runnable接口的run()方法
    启动线程 | 调用线程对象的start()方法
    等待线程完成 | 使用Thread类的join()方法等待线程执行完成

代码实现

创建线程对象

首先,我们需要创建两个线程对象Thread1和Thread2。可以通过继承Thread类或者实现Runnable接口来创建线程。在本例中,我们选择实现Runnable接口。

// 创建Thread1和Thread2的线程类
class Thread1 implements Runnable {
    public void run() {
        // 线程1任务
    }
}

class Thread2 implements Runnable {
    public void run() {
        // 线程2任务
    }
}

// 创建线程对象
Thread1 thread1 = new Thread1();
Thread2 thread2 = new Thread2();

创建共享变量

接下来,我们需要创建一个共享变量sharedVariable,用于线程之间的数据共享。

// 创建共享变量
int sharedVariable = 0;

实现线程任务

在Runnable接口的run()方法中,我们可以编写线程的具体任务逻辑。在本例中,我们将使用一个循环来打印共享变量的值。

class Thread1 implements Runnable {
    public void run() {
        for (int i = 0; i < 10; i++) {
            // 打印共享变量的值
            System.out.println("Thread1: " + sharedVariable);
            // 增加共享变量的值
            sharedVariable++;
        }
    }
}

class Thread2 implements Runnable {
    public void run() {
        for (int i = 0; i < 10; i++) {
            // 打印共享变量的值
            System.out.println("Thread2: " + sharedVariable);
            // 减少共享变量的值
            sharedVariable--;
        }
    }
}

启动线程

在主线程中,我们需要启动Thread1和Thread2线程。

// 启动线程
Thread t1 = new Thread(thread1);
Thread t2 = new Thread(thread2);
t1.start();
t2.start();

等待线程完成

最后,我们需要使用Thread类的join()方法来等待线程执行完成。

// 等待线程完成
try {
    t1.join();
    t2.join();
} catch (InterruptedException e) {
    e.printStackTrace();
}

总结

通过以上步骤,我们成功地创建了两个线程并共享变量打印。在实际开发中,需要注意线程安全的问题,可以使用synchronized关键字或者Lock对象来保证共享变量的访问安全。希望本文对于刚入行的小白能够帮助到你,更好地理解和掌握Java创建两个线程共享变量打印的方法。如有疑问,请随时留言。