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

  • 相关阅读:
    ny 58 最少步数 (BFS)
    Oracle 参数文件
    Oracle 密码文件
    Oracle 表空间与数据文件
    Oracle 回滚(ROLLBACK)和撤销(UNDO)
    Oracle 控制文件(CONTROLFILE)
    Oracle 联机重做日志文件(ONLINE LOG FILE)
    Oracle 常用目录结构(10g)
    Oracle 归档日志
    instance_name,db_name,oracle_sid之间的关系
  • 原文地址:https://www.cnblogs.com/eryun/p/9964902.html
Copyright © 2011-2022 走看看