zoukankan      html  css  js  c++  java
  • Thread.sleep


    Thread.sleep()

    1. The current thread changes state from Running to Waiting/Blocked as shown in the diagram below.
    2. Any other thread with reference to the thread currently sleeping (say t) can interrupt it calling t.interrupt()
      • the call to sleep has to be encapsulated to catch the checked exception of InterruptedException
    3. After the time period for which the thread was set to sleep it goes to the Runnable state andmight not run immediately! It has to wait for the Thread Scheduler to schedule it for its time slice.

    Thread.yield()

    1. Calling it may cause the Thread Scheduler to move the current thread from Running toRunnable state and execute another same priority thread which was in Runnable state. This transition of state takes place only if there is some other thread of same priority in Runnable state. Hence the no guarantee that the thread will stop execution as the criteria of another same priority thread might not be met.
    2. .yield() is much based on the Thread Priorities concept. (All thread are assigned priorities and when a thread of higher priority is in Runnable state it ususally preempts / stops execution of lower priority threads depending on implementation of ThreadScheduler.)

    enter image description hereNote:

    • both Thread.sleep() and Thread.yield() are static functions and affect the current thread executing it.
    • both the functions will not let go the synchronized locks they hold.
  • 相关阅读:
    Qt Creator pro 文件 导入vs2013碰到的问题
    扫描助手技术支持
    测试下载
    pod安装(可安装任意版本)和卸载 (转载做记录自留备用)
    阿拉德下载
    Mac 上传项目到码云
    iOS中Realm数据库的基本用法
    集成微信支付流程整理
    tableViewCell左划显示多个按钮(系统原生)
    快速排序法从小到大排序
  • 原文地址:https://www.cnblogs.com/yunxiblog/p/5215668.html
Copyright © 2011-2022 走看看