什么是线程
是程序执行的最小单元,由线程ID,当前指令指针,堆栈,寄存器组合,也是进程中的一个实体,拥有就绪,阻塞,运行三种状态。
什么是线程安全?
在多线程访问的情况下,采用加锁机制,具体来说就是,当一个线程访问类的某个数据时进行保护。其他线程不能进行访问,只能等到该线程结束才可以使用。
什么是线程不安全?
在多线程访问的情况下,没有提供加锁机制,可能会出现多个线程先后更改数据造成所得到的脏数据。
什么是线程同步?
指多个线程执行时,控制线程之间的执行顺序
为什么使用线程同步?
在多线程访问的情况下,为了保证线程安全。
同步块与同步方法的区别?
同步方法:
- 使用synchronized 修饰的方法叫做同步方法。
- 同步方法:只能由一个线程进入,其他线程则进行等待。
- 多个线程时每个实例都可以进入同一个同步方法。
- 在方法内使用大括号使得代码得到同步。同步方法范围较广。
同步块:
-使用synchronized 修饰的语句块叫做同步块。
-同步代码块有一个明确的同步目标
-相对于同步方法而言同步块更加灵活