我的漫漫程序人生路(下)

该文章曾在去年发表于我的blog上,现转到这里,因为我觉得不管什么时候文章中所谈的一些东西都会对大家起到警示作用,毕竟里面的所有内容完全都是我的切身经验,没有半点虚构成分,真心希望大家少走弯路,努力进取。总有一天,梦想会照进现实的。

 

等我从家回来时看到还有一个公司在招聘兼职,而且做的项目也比较大,我就去了,很幸运,有一次通过了,我想幸运是一方面,更重要的还是自身的努力 吧。可能有人会说我怎么没有呆在之前那个公司呢,我主要是考虑现在是兼职,想多接触一些东西为以后的就业打下基础,而之前的那个公司的技术框架已经很熟悉 了,在呆下去学到的东西有限,所以就离开了,当然公司的领带还是很希望我能留下的,呵呵。

来到了新公司,这个项目是上海市公安局治安管理系统,采用的技术架构是struts+hibernate,当时hibernate在国内用的也不是 非常多,所以我还是比较早的接触了该框架,这个项目规模非常大,业务逻辑非常复杂。也就是这个项目让我学到了最多的东西。这个项目干到了一半时,项目经理 走了,而在公司里面我对这个项目是最熟悉的,无论从技术层次还是从业务需求来说,所以公司领导希望我能负责完成这个项目,这是我第二次负责一个项目,而且 这个项目也是一个比较大的项目,自然感觉到肩上的担子更重了,自己也去客户那里谈需求,回来做设计,当时真的感觉每天都非常忙, 但也非常充实,这个时候也是我技术能力提升最大的阶段。经常加班,晚上有时候就在公司睡了,呵呵,因为当时只有一个念头&

  • 13
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 188
    评论
如果需要将并行任务的结果返回给主线程,可以使用 Callable 和 Future 来实现。下面是一个示例: ```java import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; public class CountDownLatchExample { public static void main(String[] args) throws InterruptedException, ExecutionException { int taskCount = 3; CountDownLatch latch = new CountDownLatch(taskCount); ExecutorService executor = Executors.newFixedThreadPool(taskCount); List<Future<String>> futures = new ArrayList<>(); for (int i = 0; i < taskCount; i++) { Future<String> future = executor.submit(new Task(latch)); futures.add(future); } latch.await(); System.out.println("All tasks have finished, now executing main task."); for (Future<String> future : futures) { String result = future.get(); System.out.println("Task result: " + result); } executor.shutdown(); } static class Task implements Callable<String> { private CountDownLatch latch; public Task(CountDownLatch latch) { this.latch = latch; } @Override public String call() throws Exception { try { System.out.println("Task started: " + Thread.currentThread().getName()); Thread.sleep(1000); System.out.println("Task finished: " + Thread.currentThread().getName()); return "Task result from " + Thread.currentThread().getName(); } finally { latch.countDown(); } } } } ``` 在上面的代码中,我们使用 Callable 接口来定义任务,并将任务提交给线程池。每个任务执行完毕后会返回一个 Future 对象,我们将这些 Future 对象存储在列表中。主线程在等待所有任务完成后,通过遍历 Future 对象列表来获取每个任务的结果。这样我们就可以将并行任务的结果返回给主线程进行处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值