线程的优先级
设置某个线程优先等级
java为线程提供了10个优先级
优先级可以用整数1-10表示,超出范围会抛出异常
主线程默认优先级为5(数组越大优先级越大)
常量优先级
MAX_PRIORITY :最高优先级10
MIN_PRIORITY :最小优先级1
NORM_PRIORITY:默认优先级
获取线程的优先级
方法 |
说明 |
public int getPriority() |
获取线程的优先级方法 |
public void setPriority(int new Priority) |
设置线程的优先级 |
Tread
Thread 是一个线程类 位于java.lang 包下
构造方法 |
说明 |
Tread() |
创建一个线程对象 |
Tread(String name) |
创建一个指定指定名称的线程对象 |
Thread(Runnable target) |
创建一个基于Runnable接口实现类的线程对象 |
Thread(Runable target,string name) |
创建一个Runnable接口实现类,并且具有指定名称的线程对象 |
thread 类的常用方法
方法 |
说明 |
public void run() |
线程相关的代码写在该方法中,一般需要重写 |
public void start() |
启动线程的方法 |
public static void sleep(long m) |
线程休眠m毫米的方法 |
public void join() |
优先执行调用join() 方法的线程 |
Runnable 接口
只有一个方法run()
Runnable是java 中用以实现线程的接口
任何实现线程功能的类都必须实现该接口
线程的生命周期

sleep
Thread 类的方法
public static void sleep(long millis)
作用:指定的毫秒数内让正在执行的线程休眠(暂停执行)
参数为休眠的时间,单位是毫秒
join
Thread 类的方法
public final void join()
作用:等待调用该方法的线程结束后才能执行
public final void join(long millis)
作用:等待该线程终止的最长时间为millis毫秒
多线程运行问题
各线程是通过竞争CPU时间而获得运行的机会的
各个线程什么时间得到CPU时间占用多久,是不可预测的
一个正在运行着的线程在什么地方被暂停是不确定的
需要将对象进行锁定
使用关键字 synchronized(同步)[ˈsɪŋkrənaɪzd] 实现
synchronized 使用
public synchronized void saveAccount(){}
public static sychronized void saveAccount(){}
synchronized(obj){}

线程间的通信
场景:
问题:账号余额不够了怎么办?
等待存入足够的钱后处理
死锁 两个线程一直处于等待 使用notifyAll()唤醒

wait() 方法:中断方法的执行,使线程等待
notify() 方法:唤醒处于等待的某一个线程,使其结束等待
notifyAll() 方法: 唤醒所有处于等待的线程,使它们结束等待
总结
