欢迎访问宙启技术站
智能推送

Java多线程函数:Runnable、Thread和synchronized的使用方法

发布时间:2023-07-02 09:58:06

Java中的多线程函数主要包括Runnable接口、Thread类和synchronized关键字的使用方法。下面将详细介绍这些方法的用法。

1. Runnable接口:

Runnable接口是Java多线程编程的基础接口。它只有一个run()方法,需要在其中定义线程的执行逻辑。使用Runnable接口创建线程有以下步骤:

1) 创建一个类实现Runnable接口,实现run()方法。

2) 创建该类的实例对象。

3) 创建Thread对象,将实现了Runnable接口的类的对象作为参数传入。

4) 调用Thread对象的start()方法启动线程。

示例代码如下:

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 线程执行逻辑
        for (int i = 0; i < 10; i++) {
            System.out.println("Runnable执行:" + i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class Main {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start();
    }
}

2. Thread类:

Thread类是Java提供的用于创建线程的类。它是Runnable接口的实现类,同时还有一些其他的方法。使用Thread类创建线程的步骤:

1) 创建一个类继承Thread类。

2) 重写Thread类的run()方法,定义线程的执行逻辑。

3) 创建该类的实例对象。

4) 调用实例对象的start()方法启动线程。

示例代码如下:

public class MyThread extends Thread {
    @Override
    public void run() {
        // 线程执行逻辑
        for (int i = 0; i < 10; i++) {
            System.out.println("Thread执行:" + i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        myThread.start();
    }
}

3. synchronized关键字:

synchronized关键字是Java中用于实现线程同步的关键字。它可以用来修饰方法或代码块,保证在同一时间只有一个线程访问被修饰的代码。使用synchronized关键字有以下两种方式:

1) 修饰方法:在方法声明中加上synchronized关键字,表示整个方法是同步的。

2) 修饰代码块:在代码块中加上synchronized关键字,表示只有获得了该代码块的锁的线程才能执行其中的代码。

示例代码如下:

public class MyRunnable implements Runnable {
    private int count = 0;

    @Override
    public synchronized void run() {
        // 线程执行逻辑
        for (int i = 0; i < 10; i++) {
            count++;
            System.out.println("Runnable执行:" + count);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class Main {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread1 = new Thread(myRunnable);
        Thread thread2 = new Thread(myRunnable);
        thread1.start();
        thread2.start();
    }
}

以上就是Java中Runnable接口、Thread类和synchronized关键字的使用方法。在多线程编程中,可以根据具体的应用场景选择合适的方法来实现多线程逻辑。注意线程的并发访问问题,需要使用synchronized关键字来保证线程的同步和安全性。