在我们和面试官吹多线程的时候,我们务必会涉及到锁的问题,这就需要我们死磕并发并深入剖析synchronized底层原理了,希望可以帮到你,哈哈~~
1.面试经验:
面试官问你,你有没有接触过多线程的问题
- 复习的不错的朋友可以说:有接触到,在项目中因为一些业务,哪哪有使过多线程,怎么使用的,然后再去深入讲解多线程知识。
- 如果你之前只是粗略的学习过多线程,面试初级开发的话,你可以这样回答:因为项目的限制,很少使用多线程,但是多线程怎么使用还是会的,也做过一些窗口卖票的多线程小案例。
2.线程的并发问题:
在我们执行代码,开启多个线程的时候,如果不加锁会出现线程安全问题。导致数据出错。
3.什么是线程不安全?
我的回答:
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。
总结:
Java中的多线程,当多线程对一个数据进行操作时,可能会产生“竞争条件”的现象,这个时候需要对线程的操作进行加锁,来解决多线程操作一个数据时可能产生的问题。加锁方式有两种,一个是申明lock对象来对语句进行加锁ÿ