1、开启线程的方式:继承Thread类、重写run方法、实例化Thread对象,调用start();
实现Runnable接口、重写run方法、使用Thread(Runnable r)构造方法创建对象、调用start();
2、线程控制方法:sleep(long millis)在指定的毫秒数内让当前正在执行的线程休眠;
join()等待该线程终止;
setPriority(int newPriority)更改线程的优先级;
3、线程信息:getId()返回该线程的标识符;
getName()返回该线程的名称;
getPriority()返回线程的优先级;
currentThread()返回对当前正在执行的线程对象的引用;
setName(String name)改变线程的名称;
4、并发问题:多线程共享数据时,会出现线程并发问题,例如:数据不匹配问题(多账户转账/消费),解决方法:使用synchronize关键字为对象加锁;
5、死锁问题:使用线程锁时会出现死锁问题、解决办法:使用Object类的wait()方法来让对象处于等待状态,使用notify()方法来唤醒处于等待状态的对象;
6、线程的生命周期:
