为了账号安全,请及时绑定邮箱和手机立即绑定

一道面试题的疑惑:多个线程的执行要保证任务的应用生产场景

一道面试题的疑惑:多个线程的执行要保证任务的应用生产场景

BIG阳 2019-04-25 18:15:20
1.面试题:有三个线程T1,T2,T3,怎么确保它们按顺序执行?我的疑惑: 如果要保证顺序,直接一个线程拆分任务不就可以了吗,那么为什么需要多个线程必须在多线程保证顺序,这样做,生产场景应用在哪?希望有应用如此生产场景的猿友指导一下
查看完整描述

4 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

使用多线程是为了提高程序运行的效率。假如有一个程序,要求用户输入多个算式,计算出结果,并分别打印到屏幕上。如果用户一直没有输入,那么无法计算,更无法打印。如果用户输入了,必须要全部输入完,才能计算出结果,再打印到屏幕。
使用线程的话,一个线程用来等待用户输入,一个用来计算结果,一个用来打印。用户在输入算式3的时候,计算线程在计算算式2,打印线程在打印算式1,三个线程同时进行,减少了等待,这样就提高了运行效率

查看完整回答
反对 回复 2019-05-16
?
森林海

TA贡献2011条经验 获得超2个赞

我们的的业务实现上就有这样一种场景,在一套任务执行的过程中,需要执行20多个子算法,他们可以归为如下三种类别:1、可独立执行的算法;2、依赖1中结果才能执行的算法;3、其他算法执行完成后才可以执行的算法;
这种场景下,我们为了提高服务的效率,可以把这三类算法放在三个线程中来执行。2需要等待1执行完成后开始执行,3需要等待1和2都执行完成后才开始执行。所以要保证多个线程的执行顺序。而这种保证这行顺序的方法,我们用jion和CountdownLatch的方式进行处理

查看完整回答
反对 回复 2019-05-16
?
GCT1015

TA贡献1827条经验 获得超4个赞

可以使用信号量进行同步


查看完整回答
反对 回复 2019-05-16
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

多线程通信的忘得差不多了。。。
js异步的promise,java的futrue好像跟这种情景差不多,
有时并不是自己想这么写,而是接口就是这样,你改不了
比如ajax嵌套

查看完整回答
反对 回复 2019-05-16
  • 4 回答
  • 0 关注
  • 567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信