为了账号安全,请及时绑定邮箱和手机立即绑定

线程运行规则?

为什么我运行以后是 男演员第0次 男演员第1次 男演员第2次 男演员第3次 男演员第4次 女演员第0次 男演员第5次 女演员第1次 女演员第2次 男演员第6次 是电脑配置(双核之类的区别)导致的线程运行不一样吗?

正在回答

2 回答

线程的原理是,把CPU的一个核心,在时间上分成很多极短的时间片,每个时间片处理一个线程的一部分,当一个时间片完成后,下一个时间片可能选择任何一个有条件运行的线程来执行。

例如,有a,b两个线程,各自有10个语句,记为a1-a10和b1-b10,且都没有阻塞

假如我们执行

a.start();
b.start();

因为a先start,通常会先执行a1,当a1执行完,且b也已经start过后,下一个可能执行a2,也可能执行b1,具体执行谁由程序本身根据CPU状况决定,程序员无法指定。因此像是视频中的程序,哪怕是在同一台电脑上,每次运行结果也可能不同。

1 回复 有任何疑惑可以回复我~

因为线程运行需要争用CPU,因此每次运行的结果都有可能不同,同一台电脑尚且如此,不同的电脑,不同的CPU就更不用说了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

线程运行规则?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信