猿问

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

1.面试题:有三个线程T1,T2,T3,怎么确保它们按顺序执行?

我的疑惑: 如果要保证顺序,直接一个线程拆分任务不就可以了吗,那么为什么需要多个线程必须在多线程保证顺序,这样做,生产场景应用在哪?

希望有应用如此生产场景的猿友指导一下


BIG阳
浏览 568回答 4
4回答

暮色呼如

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

森林海

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

GCT1015

可以使用信号量进行同步

至尊宝的传说

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

相关分类

Java
我要回答