Java笔记

知识点总结


Thread类

线程的优先级

设置某个线程优先等级
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() 方法: 唤醒所有处于等待的线程,使它们结束等待

总结

页面列表

ITEM_HTML