开发者社区> 问答> 正文

关于循环体内的多线程问题#JAVA-多线程-同步

一般来讲,线程放在一个循环体内部(比如for循环),如果之后还有一个放在循环体中的线程,根据规定,应该是等待上一个循环体中的所有线程都进入就绪状态后下一个循环体中的代码才会被执行,也就是说实际上没能真正实现线程同步。根据自己的实验也确实如此。那么为什么还要把线程放进循环体中呢,这样不是不能实现多线程了吗。

展开
收起
YDYK 2021-01-24 14:55:49 4344 0
1 条回答
写回答
取消 提交回答
  • 可以实现啊,在两个for循环体里各有一个线程假设分别叫t+i和t-i吧,它会先把someobject对象给t+1,然后这个时候t-i会向他要someobject对象,但是t+1还没用完,等他用完了他就会给t-1而不是顺位传给t+2. 然后他这样会交替给t+i然后t-i交替执行。而不是像正常的不使用多线程那样要等一个for循环体全都执行完才给下一个循环体。

    2021-01-24 14:56:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载