采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
同样的代码,为什么我的代码先执行的do something in main, 后执行的do something in callable呢?这个和线程优先级有关系吗?
其实您说的这个我能理解,我奇怪的点是为啥您的代码一直是callable里的先执行,我的一直是main先执行,这里比较迷惑
这两个线程是通过cpu调度优先级处理的,然后上面线程做完do something in callable就开始睡眠,然后就接着执行do something in main了,然后1秒后执行future.get,4秒后取的return返回值返回Done结果
你好,当前线程额外启动了一个线程,这时当前线程和额外启动的线程由于受CPU调度的影响,执行先后并不是完全确定的,你如果多执行几次,应该也会出现我课程演示时相同的结果。
不过有一点可以肯定的是,发生这种情况时,大家执行的时间都会非常的接近,应该是毫秒级别相差无几。
这个例子也说明了一个问题,就是两个线程定义的先后顺序决定不了执行的顺序。
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.1k 15
3.5k 12
1.2k 12