程序设计中的时间片是什么意思,java中如何实现

程序设计中的时间片是什么意思,java中如何实现,第1张

cpu吧所有的时间分成相等的很小的时间片,每个进程一次只能得到一个册闷时间片去执行,如果在这个时间片以内时间内完成宏橡任务那最好,如果还没完成,则要先暂停然别的程序执行,然后过了一会儿又轮到刚才的程序执行,但是这种轮转还是很快的,我们一般感觉不到

至于java如何实现,不知道,就像蔽姿旁楼上说的,应该是由CPU根据时间片轮转算法确定的

一条指令和原子 *** 作是两个概念。

一条指令执行过程中不可以被中断,cpu只在一条指令执行完毕之后的中断周期查询中断,线程的切换就是由一个定时器实现的,比如定时器每隔200个时钟周期发起一次中断请求,cpu根据中断向量找到对应的中断处理程序,中断处理程序负责上下文切换。

原子 *** 作是通过锁机制来保证。通过加锁,保证执行原子 *** 作的时候,用到的共享内存不会被其它线程更改,也就是即使cpu切换到其它线程,其它线程也不能更改共享变量,只能等持有锁的线程释放锁。原子 *** 作通常是通过锁来保护一段临界区的代码,这段代码包括多条指令,执行的过程中完全可以发生上下文切换。

锁的实现分为乐观锁和悲观锁。乐观锁就是通过一个空的循环 *** 作实现,悲观锁会让闹迟拿不到锁的线程进入阻塞态,让出cpu。所以说对于单核cpu而言,乐观锁就是在浪唤闹费时间,因为只要它不让出cpu,那个拿到锁的线程就不会执行,它就拿不到锁,一直空转。但是多核cpu当中,拿到锁液链李的线程可以在其它的内核当中执行,它空转几圈说不定锁就释放了,就少了一次上下文切换。

想学习这部分知识可以看《计算机组成原理》和《 *** 作系统》。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12367065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存