• c# Thread.Sleep();


    1..Sleep()属于线程挂起给予cpu从新计算优先级的函数,线程挂起时间,也就是在规定时间内不参与cpu使用权的选举

    2.当.Sleep()内部参数为0的时候就是在告诉cpu,我当前占用时间差不多够用了,想让大家在重新选举一次cpu使用权 比较顺应民意的做法,可以让别的更加需要cpu的线程先使用。

    3.window和linux的内部cpu分配机制不太一样   

      1)linux的内部分配机制是,假如当前线程挂起或者结束  那他会让线程排队一个一个来而不是根据需要的权重进行分配

      2)window内部的cpu分配机制就不一样了,他会计算线程的优先级和饥饿程度(迫切需要cpu的程度)来进行选择,比如有m1.。。。m6六个线程同时存在,比如当前使用线程的是m6但是这个线程人比较好使用一段时间想在让系统选举一下,但是系统不会接收他的指令,但是他要是在.Sleep()中写的是0,那就代表他在接下来的0秒钟内不进行争夺cpu使用权,当系统重新分配的时候0秒也就过了,这个线程也就可以接着参加使用cpu的选举,注意:如果是linux的话会直接轮到下一个线程而不是选举

    4.线程假死情况,这种情况是指单个线程死循环或其他原因进行假死状态,而不是cpu进入假死状态,我们界面上看到cpu假死的原因是,在当前线程假死时间过长,系统会强制将当前线程挂起,让其他线程执行  而其他线程执行完成后又轮到这个假死线程执行,但是这个强制挂起的机制比较长。。。。。。。。

    个人对于线程睡眠定时的理解,有参考资料,有大佬觉得不对多多指教,小铭敬上!!!!!!

    勿看他人拿高薪,且看闲时谁在拼

  • 相关阅读:
    sql server 的变量
    psycopg2 (python与postgresql)
    sublime text3 设置快速生成代码
    关于 Form 表单的 enctype 属性
    根据二进制流判断文件类型
    URL编码和Base64编码 (转)
    GZip 压缩及解压缩
    HttpWebRequest 请求 Api 及 异常处理
    c# BinaryWriter 和 BinaryReader
    JQ 上传文件(单个,多个,分片)
  • 原文地址:https://www.cnblogs.com/BoKeYuan259/p/13365017.html
Copyright © 2020-2023  润新知