jmeter 线程执行顺序_年后面试必会基础,如何控制多线程执行顺序?

15f8267c1b3e3e8dffa9c081154202ae.png

介绍

先看如下代码:

67e51fe79ef163a24ab8542a6e8d900b.png

重复执行多次,发现输出并不是按照线程的启动顺序来执行。因为这个里面涉及到CPU对线程的调度问题。

thread1thread3thread2

如何让thread1,thread2,thread3顺序执行呢?

3e217ed5725b9c33f00af98be7120230.png

方法1

通过join方法去保证多线程顺序执行

ea890762b31b384ce22d960ba4a740f7.png

可以看到输出一直是如下

thread1thread2thread3

join是怎么实现这个功能的呢?

join方法让主线程等待子线程结束以后才能继续运行,因此保证了线程的顺序执行

方法2

使用单例线程池,用唯一的工作线程执行任务,保证所有任务按照指定顺序执行

ExecutorService executorService = Executors.newSingleThreadExecutor();

这个会把线程放在一个FIFO队列,依次执行线程

b254940d31edb795e96bcab41117d64b.png

输出一直为

thread1thread2thread3

目的达到

推荐阅读

年后面试必会基础,try catch finally块中return的执行顺序

最近有人私信小编有没有面试视频,然后就总结了一波,基本涉及到了所有的面试题

bf133295385d78d3ae05da41f70cc256.png

如何获取呢?

转发后加群,681299970,备注 头条 即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值