面试真题

Java · 中等 · 京东

手撕:得到两个线程的计算成果

中等 Java 🎤 京东
参考答案
结论:通过Callable+Future或CountDownLatch等并发工具获取多线程执行结果。核心要点:1. Runnable无返回值,需用Callable接口配合FutureTask或线程池submit返回Future;2. 主线程调用future.get()阻塞获取两个线程的计算成果;3. 也可用CountDownLatch(2)让主线程await,工作线程计算后countDown,主线程读共享变量(需volatile保证可见性);4. 示例:ExecutorService es=Executors.newFixedThreadPool(2); Future<Integer> f1=es.submit(()->1+2); Future<Integer> f2=es.submit(()->3+4); int r1=f1.get(),r2=f2.get(); 原理:Future内部基于等待/通知,任务完成置状态并唤醒;对比join()仅等待结束无法传值,共享变量需额外同步。
题目整理自公开面经,答案由校招宝自研生成,仅供参考

🏢 京东 在招岗位(5 条)

保险服务 北京市-北京店长储备 上海市-上海,云南省-昆明,北京市-北京,吉林省-长春市-朝阳区,四川省-成都,四川省-成都市-新都区,天津市-天津,安徽省-合肥,安徽省-合肥市-包河区,安徽省-宿州,安徽省-淮南,安徽省-滁州,安徽省-芜湖,安徽省-蚌埠,安徽省-阜阳,山东省-济南市-历下区,山东省-济南市-历城区,山东省-青岛市-李沧区,山西省-太原,广东省-广州,广东省-深圳,广西壮族自治区-南宁,江苏省-南京,江苏省-南通,江苏省-宿迁,江苏省-徐州,江苏省-扬州,江苏省-无锡,江苏省-淮安,江苏省-盐城,江苏省-苏州,江西省-南昌,河北省-保定,河北省-廊坊,河北省-石家庄,河南省-郑州市-金水区,浙江省-宁波,浙江省-杭州,湖北省-武汉,湖南省-长沙,福建省-福州,辽宁省-沈阳,重庆市-重庆,陕西省-西安家政运营 上海市-上海,北京市-北京,吉林省-长春,四川省-成都,山东省-济南,广东省-广州,广东省-深圳,江苏省-南京,浙江省-杭州,湖北省-武汉,陕西省-西安后端开发,前端开发,客户端开发,测试,数据,运维,人工智能/算法,研发工程师,销售技术支持,通信,技术支持,产品,运营,用户研究,风控,投融资,保险,市场/营销,客服,商务,咨询/调研,财务审计,人事,行政,法务,供应链,物流,交互/设计 上海,北京,广州,成都,杭州,武汉,深圳物流储备类,门店储备类,金融风控储备类,健康储备类,客服储备类,审核储备类,金融保险储备类,销售类,人力资源类,物流防损类,财务会计类,行政类,法务风控类,健康类,品控类,运维支持类,业务支持类 上海,北京,山东等全国各地区,江苏,浙江
查看「京东」企业档案与全部在招岗位 ›