zoukankan      html  css  js  c++  java
  • 并发知识(2)——关于Thread

    一些容易混淆的知识点

    1. sleep vs wait

    sleep是Thread,wait是Object方法

    wait和notify只能在同步代码块中调用

    wait释放锁资源,sleep不释放锁资源

    唤醒条件:wait通过notify或者notifyAll,sleep超时或者调用interrupt方法

    关于Thread

    类定义:

    class Thread implements Runnable

    Java doc:

    每个线程都有优先级,线程的优先级与创建它的线程的优先级一样,当然,如果创建它的线程是daemon则创建出来的也是daemon

    当JVM启动时,通常有一个non-daemon线程——该线程会调用指定类的main方法。

    JVM会一直执行线程除非遇到下面两种情况:

    1. Runtime类的exit方法被调用或安全管理器允许退出操作
    2. 所有非守护线程死亡,要么从对run方法的调用返回,要么抛出一个在run方法之外传播的异常

    内部类State:

    NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED

    所以你看到的所有的状态转换,在Java文档里有写。。。

    • 优先级:最小1最大10 正常5
    • new Thread的时候默认名字“Thread-” 加上线程数量
    • Thread中有一个target,调用run的时候如果target != null则调用target的run方法
    • 退出之前会调用一下exit()方法
    • yield:告诉调度器处理器我暂时可以让给别的线程使用,调度器可以无视。很难正确使用,主要用于调试或测试。
    • sleep:The thread does not lose ownership of any monitors.
    • join:等待线程死亡,join(0)无限期等待

    这里顺便看下Object的wait方法:The thread releases ownership of this monitor

    当你准备好了,机会来临的时候,你才能抓住
  • 相关阅读:
    常用的dos命令
    java环境的配置
    javascript面向对象个人理解
    js如何获取样式?
    springboot新建项目遇到Whitelabel Error Page
    CSS 隐藏页面元素的 几 种方法总结
    优美动听的葫芦丝名曲
    大前端资料合集
    CSS实现背景透明,文字不透明(兼容所有浏览器)
    文字上下无缝滚动效果
  • 原文地址:https://www.cnblogs.com/studentytj/p/11291049.html
Copyright © 2011-2022 走看看