进程、线程、时间片的关系 1.线程是CPU调度的最小单位,是不是指时间片是按线程分的?2.如果1的答案为是,那么某个进程有超多的线程,那么这个进程将占据绝大多数CPU时间?3.如果1的答案为否,那么时间片按进程分,单核多线程速度会比单线程慢呗,因为要线程切换? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 windows 是以线程来分配时间片的。线程,活动时有两个状态,一个是对 cpu 有要求比如SuperPI 的计算过程;一个是在等待消息状态的无要求,其实绝大部分的线程都是这样的状态;所以,一个进程尽管有众多的线程,它所获得的时间片不一定就有多少,这个可在“任务管理器”里看各个进程的状态信息的,同时将进程的线程数和CPU时间打开。 1,进程是资源分配单位,线程是CPU调度单位,对大多数操作系统来说,时间片是线程而非进程相关的;2,不一定,线程的调度执行是有优先级的,优先级高的得到更多时间片,Linux系统中优先级高的线程时间片大于优先级低的时间片,所以进程有多个线程并不一定这个进程会占用更多CPU时间;3,这个还是跟优先级有关,如果优先级低,线程再多也不能加快执行速度,即使进程是单线程也是通过操作系统来调度的,也会分配时间片,因为后台还有许多线程在调度执行;但有一点是明确的,线程是对CPU的虚拟,进程有多个线程相当于给该进程分配了多个CPU来执行,效率肯定要高于只分配一个CPU来执行。 第一个问题: 必须是第二个问题:如果这个进程里的所有线程都是活动的话,那么是的;一般程序里如果经常会用Sleep或者SuspendThread来让一个线程不活动,这样就不会占用CPU时间片楼主想要了解更详细的原理,可以看《windows核心编程》 1.是2.是不是占据绝大多CPU时间,还看操作系统调度策略:批处理,那可能是;分时操作,那可能不是,这也还得看其他进程线程比例。还看线程作业情况,比如,该进程(有很多线程)主要进行IO操作,线程一进CPU运行,不久就被挂起,转而去执行其他线程进程,那还是别的进程占据的时间多。3.假如时间片是按进程来分的,那单核多线程速度会比单线程快!因为线程切换要比进程切换速度要快很多,这正式线程几大优点之一!多回看几遍书,啊哈哈哈哈。 [求助] win2003 server虚拟服务器上 架设了web应用,虚拟机可访问该网页,外部访问无效! 新服务器,win2008R2已激活,一小时后自动关机,日志如下 哪里可以下载64位的DPInst64.exe VBA to VSTo的样式翻译 使用rsync同步目录里文件报is a directory错误。 求大神指教,ping不通服务器问题 windows故障转移集群 搭建问题 Windows驱动描述符问题 【求助】conda指令异常 组策略没办法应用到组 win7 修改hosts无效 ping命令使用的是tcp报文还是udp报文? Icmp属于tcp吗?
2,不一定,线程的调度执行是有优先级的,优先级高的得到更多时间片,Linux系统中优先级高的线程时间片大于优先级低的时间片,所以进程有多个线程并不一定这个进程会占用更多CPU时间;
3,这个还是跟优先级有关,如果优先级低,线程再多也不能加快执行速度,即使进程是单线程也是通过操作系统来调度的,也会分配时间片,因为后台还有许多线程在调度执行;但有一点是明确的,线程是对CPU的虚拟,进程有多个线程相当于给该进程分配了多个CPU来执行,效率肯定要高于只分配一个CPU来执行。
2.是不是占据绝大多CPU时间,还看操作系统调度策略:批处理,那可能是;分时操作,那可能不是,这也还得看其他进程线程比例。还看线程作业情况,比如,该进程(有很多线程)主要进行IO操作,线程一进CPU运行,不久就被挂起,转而去执行其他线程进程,那还是别的进程占据的时间多。
3.假如时间片是按进程来分的,那单核多线程速度会比单线程快!因为线程切换要比进程切换速度要快很多,这正式线程几大优点之一!多回看几遍书,啊哈哈哈哈。