zoukankan      html  css  js  c++  java
  • java多线程

    1 线程的状态:

       创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting、waiting、消亡(dead)

    2 wait和sleep区别

      1)sleep()方法属于Thread类,wait()方法,属于Object类。

      2)sleep()方法导致了程序暂停执行指定的时间,会让出cpu给其他线程,但是不会释放对象锁,当指定的时间到了又会自动恢复运行状态。

      3) wait方法会让线程进入阻塞状态,并且会释放线程占有的锁,并交出CPU执行权限

    3 yield方法

       1)yield方法会让当前线程交出CPU权限,同样不会释放锁。但是yield不能控制具体的交出CPU的时间,

       2)yield方法只能让拥有相同优先级的线程有获取CPU执行时间的机会。

       3)yield方法并不会让线程进入阻塞状态,而是让线程重回就绪状态,它只需要等待重新获取CPU执行时间

    4 join方法

       1)join方法是调用了Object的wait方法

       2) 调用thread1.join()方法后,main线程会进入等待,然后等待thread1执行完之后再继续执行

    5 interrupt方法

      1)interrupt方法可以中断处于阻塞状态的线程

      2)interrupt方法不能直接中断正在运行中的线程,但是可以通过interrupt方法和isInterrupted()方法来停止正在运行的线程,调用interrupt方法相当于将中断标志位置为true

  • 相关阅读:
    算法 在连续线性空间里查找
    OSI网络模型和网络连接设备
    CPU 架构SMP/NUMA,调优
    cluster集群基本概念
    protocol buffers 使用方法
    Qt在window下的环境变量PATH的配置
    mysql connector c++ 1.1 API初步体验
    mysql connector c++ 1.1 安装
    python知识点总结01(不定时更新)
    ant-design表单自定义验证
  • 原文地址:https://www.cnblogs.com/eryun/p/9964902.html
Copyright © 2011-2022 走看看