1.进程和线程之间的联系。
进程是程序依次执行的过程,线程是比进程小的执行单位。
一个进程在其执行过程中可以创建多个线程。
多个线程共享进程的堆和方法区内存资源。
进程是OS进行资源分配的基本单位。
线程是OS进行调度的基本单位。
进程和线程是1:m关系。
2.线程的状态有6种:
分别是初始状态、运行状态、阻塞状态、等待状态、超时等待状态和终止状态。
3.为什么需要使用多线程?
线程是程序执行的最小单位,多个线程同时运行可以减少线程上下文切换的开销,多线程是开发高并发系统的基础(即允许同一时间段执行多个任务),利用好多线程机制可以很好的提升系统的并发能力和性能。
4.创建线程的方式
①继承Thread,重写run();②实现Runnable接口;③实现Callable接口。
5.关键字volatile有哪两个作用?
关键字volat的作用:保证变量的可见性,以及防止指令进行重排序优化。
6.关键字volatile的使用需要满足什么条件?
使用关键字volatile的变量必须满足两个条件:
①对变量的写入操作不依赖于变量的当前值。能够确保只有单个线程更新变量的值。
②该变量没有包含在具有其他变量的不变式中。