1.前一天重点内容复习
创建多线程的方式
继承实现
1.自定义一个Thread类的子实现类
2.重写Thread类的run方法
3.在main方法中创建Thread类对象
4.启动线程start()
接口实现
1.自定义一个Runable接口的实现类
2.重写Runable接口中的run方法
3.创建子实现类对象
4.创建Thread类对象,将子实现类对象作为参数传递
5.启动线程start()
进程和线程
进程是能够调用系统资源的独立单位,线程依赖于进程存在,是能够执行的最小单元
多进程是为了提高cpu的利用率,多线程是为了各个进程满足同时进行需要
线程执行具有随机性,通过设置优先级可以改变线程被执行概率
join()方法和yield()方法分别是什么
join()方法:等待该线程终止,存在一个中断异常interruptedException
yield()方法:暂停当前正在执行的线程,让其他线程先执行
2.创建线程方式方式的弊端和优势
继承实现:弊端为继承关系将不需要的方法也继承过来了,在内存中有多个对象,这些对象没有一起使用同一个资源,容易对数据出现操作错误问题
接口实现:优势为接口实现关系,只实现需要的接口,体现了面向接口编程的思想,内存中的线程对象一起使用同一个资源,数据的安全性有了很大的提高
3.同步机制
格式:
synchronized(锁对象){
对共享数据进行的操作
}
4.线程状态
新建,运行,阻塞,死死等待,超时等待,终止
5.Lock锁
功能:
void lock():获取锁
void unlock():释放锁