首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pthread概念

Pthread概念
EN

Stack Overflow用户
提问于 2012-03-22 07:50:11
回答 4查看 363关注 0票数 0

我正在研究线程,我不确定我是否理解了一些概念。抢占和让利之间的区别是什么?到目前为止,我知道抢占是一种被迫的让步,但我不确定它实际上是什么意思。谢谢你的帮助。

EN

回答 4

Stack Overflow用户

发布于 2012-03-22 07:54:22

抢占是指一个线程停止另一个线程运行,以便它可以运行。

当线程自愿放弃处理器时间时,就会发生让步。

票数 1
EN

Stack Overflow用户

发布于 2012-03-22 08:05:11

看看这些..。

http://en.wikipedia.org/wiki/Preemption_(computing)

http://en.wikipedia.org/wiki/Thread_(computing)

票数 1
EN

Stack Overflow用户

发布于 2012-03-22 08:29:36

不同之处在于进入操作系统的方式。

“reads”是一个软件中断AKA系统调用,这是可能导致正在运行的线程集发生变化的众多系统调用之一(还有许多其他系统调用可以做到这一点--阻塞读取、同步调用)。ready ()是从正在运行的线程中调用的,并且可能会导致另一个相同优先级的就绪(但未运行)线程正在运行,而不是正在执行调用的线程-如果有调用线程的话。

yield()的确切行为在某种程度上依赖于硬件/OS/语言。除非您正在开发低级的无锁线程通信机制,而且您非常擅长它,否则最好就不要去想best ()了。

抢占是中断一个线程并在其位置上调度另一个线程的行为。它只能在硬件中断后发生。当硬件中断时,进入其驱动程序。驱动程序可以决定它可以有效地使线程准备就绪(例如,线程在对驱动程序的read()调用中被阻塞,并且驱动程序已经积累了一个很好的、大的数据缓冲区)。驱动程序可以通过发信号通知信号量并退出via来完成此操作。操作系统(它提供了一个入口点来实现这一目的)。该驱动程序退出路径导致重新调度,并且可能使读线程运行,而不是在中断之前正在运行的某个其他线程-另一个线程已被抢占。本质上很简单,当操作系统决定中断-返回到与被中断的线程不同的线程集时,就会发生抢占。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9814549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档