Java里线程切换的问题

raffinkira 2023-08-25 23:06:16

假如有一个线程A分配到了一个作业,那在这个作业从头到尾是不是都是由A来执行?当中有没有可能换成其他线程?比如线程中断之类的情况

...全文
696 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Java方文山 2023-08-26
  • 打赏
  • 举报
回复

线程A分配到作业,由A来执行。但是,如果线程A在执行过程中被中断,那么操作系统会将CPU分配给其他线程执行。 但是某些线程模型允许任务(task)的划分和分配给不同的线程。在这种情况下,作业在执行过程中可能会被转移给其他线程,以实现更好的并行性或负载均衡。

「已注销」 2023-08-27
  • 举报
回复
@Java方文山 如果交给其他线程执行,那是不是涉及一个数据传递的问题?需要把线程A的数据传递给线程B
Java方文山 2023-08-27
  • 举报
回复
@「已注销」 是的,如果线程A需要执行另一个作业,那么它需要将数据传递给线程B。在Java中,可以使用多种方法来传递数据,例如通过构造函数、变量和方法、回调函数等 。如果觉得我的回复对你有用的话,请点个采纳吧!!
老王就是我 2023-08-26
  • 打赏
  • 举报
回复

并不是,哪怕加锁都会切换到其他线程,只不过因为其他线程没有找不到钥匙,又会滚回a线程

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧