美文网首页
线程忙等/睡眠区别

线程忙等/睡眠区别

作者: NapoleonY | 来源:发表于2018-07-30 15:16 被阅读18次
  • 线程睡眠:会主动让出时间片。让出时间片会导致操作系统切换到另一个线程,这种上下文切换通常需要10us左右,并且需要切换两次(切走一次,切回一次)
  • 线程忙等:消耗CPU,一直在轮询某个变量直到符合条件
  • 线程阻塞:不消耗CPU

下面是引用自线程的阻塞与挂起,我认为挺形象

首先这些术语都是对于线程来说的。对线程的控制就好比你控制了一个雇工为你干活。你对雇工的控制是通过编程来实现的。
挂起线程的意思就是你对主动对雇工说:“你睡觉去吧,用着你的时候我主动去叫你,然后接着干活”。
使线程睡眠的意思就是你主动对雇工说:“你睡觉去吧,某时某刻过来报到,然后接着干活”。
线程阻塞的意思就是,你突然发现,你的雇工不知道在什么时候没经过你允许,自己睡觉呢,但是你不能怪雇工,肯定你这个雇主没注意,本来你让雇工扫地,结果扫帚被偷了或被邻居家借去了,你又没让雇工继续干别的活,他就只好睡觉了。至于扫帚回来后,雇工会不会知道,会不会继续干活,你不用担心,雇工一旦发现扫帚回来了,他就会自己去干活的。因为雇工受过良好的培训。这个培训机构就是操作系统。

相关文章

  • 线程忙等/睡眠区别

    线程睡眠:会主动让出时间片。让出时间片会导致操作系统切换到另一个线程,这种上下文切换通常需要10us左右,并且需要...

  • IOS中的锁

    自旋锁:线程处于忙等状态,busy wait OSSpinLock叫做”自旋锁”,等待锁的线程会处于忙等(busy...

  • iOS 锁

    两张截图说明iOS锁。 锁,可概括为三种:自旋锁、信号量、互斥锁。基本原理都是让线程忙等或者睡眠,耗时的长短就在忙...

  • 2018-07-26 抖音面试题汇总

    互斥锁、自旋锁、递归锁啥区别? 都是保证只有一个线程访问对象的锁。互斥会睡眠线程,自选会循环访问,递归是特殊的互斥...

  • Thread线程的理解

    sleep()方法 该方法是让线程睡眠,注意睡眠的线程是当前执行的线程,如下代码,睡眠的是main线程,不是t1线...

  • 并发编程基础(下)

    书接上文。上文主要讲了下线程的基本概念,三种创建线程的方式与区别,还介绍了线程的状态,线程通知和等待,join等,...

  • thread

    java多线程 线程的基础 线程进程区别 进程是操作系统的分配和调度系统内存资源、cpu时间片等 资源 的基本单位...

  • 底层21:多线程-锁

    iOS中的线程同步方案: 1.OSSpinLock: 叫做“自旋锁”,等待锁的线程会处于忙等(busy-wait)...

  • 听说你Binder机制学的不错,来面试下这几个问题(二)

    本篇是第二篇,主要是涉及线程与进程的唤醒,数据传输的封装与解析, Binder线程的睡眠与唤醒(请求线程睡在哪个等...

  • 听说你Binder机制学的不错?来面试下这几个问题(二)

    本篇是第二篇,主要是涉及线程与进程的唤醒,数据传输的封装与解析, Binder线程的睡眠与唤醒(请求线程睡在哪个等...

网友评论

      本文标题:线程忙等/睡眠区别

      本文链接:https://www.haomeiwen.com/subject/bnrfvftx.html