当前位置:首页 > 内存 > 正文

阻塞队列在内存中吗

  • 内存
  • 2024-06-03 12:05:12
  • 5263

一、操作系统中挂起和阻塞的区别。操作系统中挂起和阻塞的区别如下:
1:挂起是主动行为,所以恢复也应该主动完成,而阻塞是被动行为,即在等待事件的同时执行任务。或者资源性能,你不知道什么时候被阻塞(pend),也无法确切知道什么时候会恢复阻塞。另外,挂起队列可以认为是操作系统中的一种,而阻塞队列是指不同的事件或资源(如信号量)有自己的队列;
2:阻塞(pend)是指任务被释放给CPU,其他任务可以运行并且通常在等待特定资源或信号量时出现。挂起并不会释放CPU如果任务的优先级较高,则程序调试中的条件中断一般会导致其他任务无法运行。
三:pend表示该任务正在主动等待一个事件或消息,表示直接挂起这个任务与你以后这个挂起的任务无关。除非你恢复任务;
四:任务调度是由操作系统实现的,处于挂起状态的任务直接被忽略,但是挂起状态下的任务会被考虑到pend下的任务已就绪,,可以改为ready。Ready只需要等待CPU时间,当然任务调度也会接管,但是不大,可以忽略。可以理解为只要处于挂起状态,操作系统就不再管理这个任务;
五:挂起是主动的,一般需要通过挂起函数来处理如果没有恢复操作,任务将继续未准备好。阻塞的发生是因为资源被另一个任务抢占并且处于空闲状态。两种表达方法都是从就绪状态“清除”,即清除相应的标志位,但执行的方法不同。