并行执行器

工作中出现某些代码需要并行执行以提高程序运算速度的情况,所以写了一个小工具。

public class Main {
	public static void main(String[] args) {
		// 你可以通过注释下面的部分代码来探索它的功能,
		// 一些重要的说明请到代码中寻找,注释写的很清楚
		new ParallelInvoker().call(invoker -> { // call方法启动执行器
			System.out.println("1");
			try {
				Thread.sleep(5000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			invoker.reject(new Exception("e1"));
			System.out.println("2");
		}).and(invoker -> {
			System.out.println("3");
			invoker.reject(new Exception("e2"));
			System.out.println("4");
		}).then(invoker -> { // then将前后断开,只有前面的回调全部执行完,且没有发生catched(没有调用reject),才会执行then后的函数,此处调用了reject,所以"then 开始"不会被打印
			System.out.println("then 开始");
			invoker.reject(new Exception());
			try {
				Thread.sleep(5000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.println("then 结束");
		}).continued().catched(e -> { // continued标识可让主线程不等待被标记点的执行
			System.out.println(e.getMessage());
		}).start();
		System.out.println("main continue");
	}
}

结果:

1
3
e2
4
main continue
2

项目在GitHub上,点这里

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值