java多线程常见难理解点

  1. start方法并不是启动线程,而是通知“线程规划器”此线程已经准备就绪,等待调用线程对象的run方法。
  2. 如果直接调用线程对象的run方法,则不是异步执行了,而是同步。
  3. Thread.currentThread().getName()和this.getName()的区别:
    前者是运行此代码的当前线程的名称
    后者是此线程实例的名称
  4. interrupt方法仅仅是在当前线程中打了一个停止标记,并不是真正停止线程。如果想停止线程则需要程序员用程序控制。
  5. interrupted和isInterrupted方法的区别:
    interrupted是静态方法,判断的是运行此方法的当前线程是否已经中断,执行后会将状态标志清除为false。
    isInterrupted是实例方法,需要线程实例调用,判断的是线程实例是否已经中断,但不清除标志位。
  6. yield方法的作用是放弃当前CPU资源,将它让给其他的任务去占用CPU执行时间。但是放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片。

未完待续。。。

另外欢迎关注我的:
Github
微博
掘金
微信公众号

java多线程常见难理解点_第1张图片
蛋妞码农

你可能感兴趣的:(java多线程常见难理解点)