Java 线程方法

线程标识相关

方法 描述
public Thread(Runnable target, String name)
 带参数的构造方法, 第二个参数是线程名称
public static Thread currentThread()
 静态方法, 返回当前线程
public String getName()
 获取线程名称, 如果没指定, 默认 Thread-index
public void setName(String name)
 设置线程名称
public long getId()
 获取线程编号

线程优先级相关

  不是绝对的优先级, 只是提升抢夺 CPU 概率

  有三个常量, MIN_PRIORITY(1); NORM_PRIORITY(5); MAX_PRIORITY(10); 默认是 NORM_PRIORITY

方法 描述
public int getPriority()
 获取线程优先级
public void setPriority(int newPriority)
 设置线程优先级, 范围 1-10 

 

阻塞相关方法

方法 描述
public void join() throws InterruptedException

 合并线程

 加入一个新线程, 当新线程执行完毕再执行当前线程

public static void yield()

 线程让步, 静态方法

 让出 CPU 的使用权, 再次和别的线程抢夺 CPU 资源

 写在线程体内部( run() 方法里), 注意主线程没有 run() 方法

public static void sleep(long millis) throws InterruptedException

 线程休眠, 静态方法

 暂定执行, 指定时间过后再次执行

 休眠期间不会释放锁, 意味着休眠期间别的线程不会做什么事儿, 因为获取不到锁

public void wait(long timeout) throws InterruptedException
public void wait() throws InterruptedException

 来自 Object 类

 能不使用就不使用, 很多书是这样说的, 我也没完全搞明白这个方法的原理~~~~

 线程等待, 如果指定时间, 该时间过后自动唤醒; 如果不指定, 需要使用 notify() 或 notifyAll() 来唤醒

 等待期间会释放锁, 唤醒之后再次尝试获取锁

 
public void notify()
public void notifyAll()

 来着 Object 类

 能不使用就不使用

 唤醒 wait() 的线程

 

原文地址:https://www.cnblogs.com/huanggy/p/9523248.html