• 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假死的原因是,在当前线程假死时间过长,系统会强制将当前线程挂起,让其他线程执行  而其他线程执行完成后又轮到这个假死线程执行,但是这个强制挂起的机制比较长。。。。。。。。

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

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

  • 相关阅读:
    网页的资源加载优化
    Object.prototype.toString的应用
    判断一个字符串中出现次数最多的字符,并统计字数
    toString()和toLocaleString()有什么区别
    响应式网站布局要适应的当下主流手机屏幕的各个版本的分辨率有哪些(media query)
    handlebars用法
    算符优先分析及其简单代码实现
    OpenGL:使用顶点数组法绘制正六面体
    算法设计:两种快速排序代码实现
    c#简易学生信息管理系统
  • 原文地址:https://www.cnblogs.com/BoKeYuan259/p/13365017.html
Copyright © 2020-2023  润新知