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

java多线程并发执行

作者:穹上之月   发布日期:2025-11-10   浏览:97

// Java多线程并发执行示例

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class MultiThreadExample {

    // 创建一个固定大小的线程池,这里设置为3个线程
    private static final int THREAD_POOL_SIZE = 3;

    public static void main(String[] args) {
        // 创建一个固定大小的线程池
        ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);

        // 提交多个任务到线程池中执行
        for (int i = 0; i < 10; i++) {
            Runnable task = new Task(i);
            executorService.submit(task);
        }

        // 关闭线程池,不再接受新的任务,但会继续执行已提交的任务
        executorService.shutdown();
    }

    // 定义一个任务类,实现Runnable接口
    static class Task implements Runnable {
        private final int taskId;

        public Task(int taskId) {
            this.taskId = taskId;
        }

        @Override
        public void run() {
            // 模拟任务执行
            System.out.println("Task " + taskId + " is running on thread " + Thread.currentThread().getName());
            try {
                // 模拟任务耗时操作
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
                System.out.println("Task " + taskId + " was interrupted");
            }
            System.out.println("Task " + taskId + " has finished");
        }
    }
}

解释说明:

  1. 线程池创建

    • 使用Executors.newFixedThreadPool(THREAD_POOL_SIZE)创建了一个固定大小为3的线程池。线程池可以复用线程,减少线程创建和销毁的开销。
  2. 任务提交

    • 使用executorService.submit(task)将多个任务提交给线程池执行。每个任务是一个实现了Runnable接口的对象。
  3. 任务类

    • Task类实现了Runnable接口,重写了run()方法,在该方法中定义了任务的具体执行逻辑。
    • 每个任务在执行时会打印当前任务ID和执行它的线程名称,并模拟了一个耗时2秒的操作。
  4. 线程池关闭

    • 调用executorService.shutdown()方法关闭线程池,表示不再接受新的任务,但会继续执行已经提交的任务。
  5. 异常处理

    • run()方法中捕获了InterruptedException,确保当线程被中断时能够正确处理并恢复中断状态。

通过这种方式,多个任务可以在不同的线程中并发执行,提高了程序的执行效率。

上一篇:java jpa

下一篇:java换行

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

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

Laravel 中文站