周五在java群里看到了一个有意思的问题,周末就顺便实现了一下,需求如下:
考察一个多线程的场景,一个Http?Request的controller有10个线程同时并行处理,要求:
1)?主线程必须等待10个线程全部执行成功后主线程返回“Success”
2)?只要其中任意一个线程出错,不仅当前出错的线程要回滚,其他所有线程不管成功失败也要回滚,主线程等待所有线程回滚完毕后输出相应的错误字符“Fail”。?
代码如下:
package com.mfunny.queue;
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.LinkedBlockingDeque;
/**
*
*
*
*
*
*
* 修改历史: <br>
* 修改日期 修改人员 版本 修改内容
* --------------------------------------------------------------------
* 2016年03月26日 上午9:31 1.0 初始化创建
*
*
* @author
* @version 1.0
* @since JDK1.7
*/
public class Test {
private static class Rollback {