for循环多线程处理业务

ThreadPoolExecutor executor = ExecutorBuilder.create().setCorePoolSize(4)
                    .setMaxPoolSize(8)
                    .build();
            audList.forEach(d->{
                    executor.submit(() -> {
                    //业务代码

                    });
              
            });



        try {
                executor.shutdown();
                executor.awaitTermination(10, TimeUnit.MINUTES);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,多线程处理for循环通常用于创建和管理并发任务,以便提高执行效率或利用多核处理器的能力。当一个for循环中的任务可以独立执行,且不依赖于其他任务的完成顺序时,可以考虑使用多线程。 以下是一个简单的示例,展示了如何使用Java的`Thread`类和`synchronized`关键字来实现多线程for循环: ```java class Task implements Runnable { private int taskIndex; public Task(int index) { this.taskIndex = index; } @Override public void run() { synchronized (this) { // 防止多个线程同时修改 System.out.println("Starting task " + taskIndex); doWork(taskIndex); // 假设doWork方法是线程安全的 System.out.println("Finished task " + taskIndex); } } private void doWork(int index) { // 这里放你的具体业务逻辑 // 假设每个线程的任务是打印当前索引 for (int i = 0; i < 10; i++) { System.out.println("Task " + index + ": " + i); } } } public class Main { public static void main(String[] args) { int numThreads = 5; Thread[] threads = new Thread[numThreads]; for (int i = 0; i < numThreads; i++) { threads[i] = new Thread(new Task(i)); threads[i].start(); // 启动线程 } // 等待所有线程完成 for (Thread thread : threads) { try { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } } ``` 在这个例子中,我们创建了一个`Task`类实现了`Runnable`接口,每个`Task`实例在自己的线程中执行`doWork`方法的for循环。`synchronized`关键字确保了每个任务不会同时访问同一个对象(这里为`this`)的`doWork`方法,避免了数据竞争。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值