代码执行完毕后,为何未能正常关闭退出?

更新于
2026-10-12 09:38:38
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计276个文字,预计阅读时间需要2分钟。

代码执行完毕后,为何未能正常关闭退出?

一个多线程实例代码,控制台可以正常输出结果,但没有输出Process finished with exit code 0,说明程序没有退出,这是什么原因?

代码执行完毕后,为何未能正常关闭退出?

javapublic class CyclicBarrierTest implements Runnable { private static final CyclicBarrier barrier=new CyclicBarrier(2);

@Override public void run() { try { barrier.await(); } catch (InterruptedException | BrokenBarrierException e) { e.printStackTrace(); } }

public static void main(String[] args) { Thread t1=new Thread(new CyclicBarrierTest()); Thread t2=new Thread(new CyclicBarrierTest());

t1.start(); t2.start(); }}

一个多线程的实例代码,控制台可以正常输出结果4,但是没有输出“Process finished with exit code 0”,表明程序没有退出,这是什么原因?

public class CyclicBarrierTest implements Runnable { private CyclicBarrier cyclicBarrier = new CyclicBarrier(4, this); private Executor executor = Executors.newFixedThreadPool(4); private ConcurrentMap concurrentMap = new ConcurrentHashMap<>(); private void calculate() { for (int i = 0; i < 4; i++) { executor.execute(new Runnable() { @Override public void run() { concurrentMap.put(Thread.currentThread().getName(), 1); try { cyclicBarrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } } }); } } public static void main(String[] args) throws InterruptedException { CyclicBarrierTest cyclicBarrierTest = new CyclicBarrierTest(); cyclicBarrierTest.calculate(); Thread.sleep(1000); System.out.println(cyclicBarrierTest.concurrentMap.get("result")); } @Override public void run() { Integer result = 0; for (Map.Entry entry : concurrentMap.entrySet()) { result += entry.getValue(); } concurrentMap.put("result", result); } }

本文共计276个文字,预计阅读时间需要2分钟。

代码执行完毕后,为何未能正常关闭退出?

一个多线程实例代码,控制台可以正常输出结果,但没有输出Process finished with exit code 0,说明程序没有退出,这是什么原因?

代码执行完毕后,为何未能正常关闭退出?

javapublic class CyclicBarrierTest implements Runnable { private static final CyclicBarrier barrier=new CyclicBarrier(2);

@Override public void run() { try { barrier.await(); } catch (InterruptedException | BrokenBarrierException e) { e.printStackTrace(); } }

public static void main(String[] args) { Thread t1=new Thread(new CyclicBarrierTest()); Thread t2=new Thread(new CyclicBarrierTest());

t1.start(); t2.start(); }}

一个多线程的实例代码,控制台可以正常输出结果4,但是没有输出“Process finished with exit code 0”,表明程序没有退出,这是什么原因?

public class CyclicBarrierTest implements Runnable { private CyclicBarrier cyclicBarrier = new CyclicBarrier(4, this); private Executor executor = Executors.newFixedThreadPool(4); private ConcurrentMap concurrentMap = new ConcurrentHashMap<>(); private void calculate() { for (int i = 0; i < 4; i++) { executor.execute(new Runnable() { @Override public void run() { concurrentMap.put(Thread.currentThread().getName(), 1); try { cyclicBarrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } } }); } } public static void main(String[] args) throws InterruptedException { CyclicBarrierTest cyclicBarrierTest = new CyclicBarrierTest(); cyclicBarrierTest.calculate(); Thread.sleep(1000); System.out.println(cyclicBarrierTest.concurrentMap.get("result")); } @Override public void run() { Integer result = 0; for (Map.Entry entry : concurrentMap.entrySet()) { result += entry.getValue(); } concurrentMap.put("result", result); } }