什么是线程?
线程是cup最小的调度单位,它包含在进程中,是进程中实际运行的单位
什么是线程安全和不安全
线程安全就是多线程同时运行对资源进行访问控制时,数据不会出现问题,能保证数据的一致性, 保证线程安全需要加锁
线程不安全就是,多线程访问资源的时候,对资源进行修改后,数据错乱形成脏数据,既没有加锁, 如果只进行读操作,效率会更高
怎么创建一个线程呢?
四种方法:
继承Thread类,重写run()方法,使用start()方法启动
实现Runnable,重写run()方法,实现Thread调用start方法
实现Callable,重写call()方法, 使用:Callable封装成FutureTask,FutureTask实现RunnableFuture,RunnableFuture继承Runnable,所以Callable也算是一种Runnable,所以三种实现方式本质上都是Runnable实现
实现线程池
sleep() 与 interrupt()
sleep():让线程进入休眠状态,但是不会丢弃锁,一到时间继续运行
interrupt():抛出InterruptedException异常,唤醒正在睡眠的线程,打断睡眠,继续工作
wait() 与 notify()
wait();放弃锁,进入无限期等待状态
notify();随机唤醒一个同步方法中在等待状态的线程