java用代码实现高并发

这里申请了1000个线程,并且执行1000次任务。当所有任务完成后,main退出。

  1. public class Test {  
  2.      public static void main(String[] args) {  
  3.           int count = 1000;  
  4.           ExecutorService executorService = Executors.newFixedThreadPool(count);  
  5.           for (int i = 0; i < count; i++)  
  6.                executorService.execute(new Test().new Task());  
  7.   
  8.           executorService.shutdown();  
  9.           while (!executorService.isTerminated()) {  
  10.                try {  
  11.                     Thread.sleep(10);  
  12.                } catch (InterruptedException e) {  
  13.                     e.printStackTrace();  
  14.                }  
  15.           }  
  16.      }  
  17.   
  18.      public class Task implements Runnable {  
  19.   
  20.           @Override  
  21.           public void run() {  
  22.                try {  
  23.                     // 测试内容  
  24.                } catch (Exception e) {  
  25.                     e.printStackTrace();  
  26.                }  
  27.           }  
  28.      }  

如果要实现真正的并发同时执行,可通过CyclicBarrier来控制。

  1. public class Test {  
  2.      public static void main(String[] args) {  
  3.           int count = 1000;  
  4.           CyclicBarrier cyclicBarrier = new CyclicBarrier(count);  
  5.           ExecutorService executorService = Executors.newFixedThreadPool(count);  
  6.           for (int i = 0; i < count; i++)  
  7.                executorService.execute(new Test().new Task(cyclicBarrier));  
  8.   
  9.           executorService.shutdown();  
  10.           while (!executorService.isTerminated()) {  
  11.                try {  
  12.                     Thread.sleep(10);  
  13.                } catch (InterruptedException e) {  
  14.                     e.printStackTrace();  
  15.                }  
  16.           }  
  17.      }  
  18.   
  19.      public class Task implements Runnable {  
  20.           private CyclicBarrier cyclicBarrier;  
  21.   
  22.           public Task(CyclicBarrier cyclicBarrier) {  
  23.                this.cyclicBarrier = cyclicBarrier;  
  24.           }  
  25.   
  26.           @Override  
  27.           public void run() {  
  28.                try {  
  29.                     // 等待所有任务准备就绪  
  30.                     cyclicBarrier.await();  
  31.                     // 测试内容  
  32.                } catch (Exception e) {  
  33.                     e.printStackTrace();  
  34.                }  
  35.           }  
  36.      }  



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

maple 枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值