- 博客(4)
- 收藏
- 关注
原创 java面试题java知识点-synchronized
我们先给出这6种常见的情况,然后一个一个分析。1、两个线程同时访问一个对象的同步方法。--------生效2、两个线程访问的是两个对象的同步方法。---------不生效,因为有两把锁3、两个线程访问的是synchronized的静态方法。-----------生效,锁子是类4、两个线程同时访问同步方法与非同步方法。-----------同步方法生效5、一个线程访问一个类的两个普通同步方法。----------------生效6、同时访问静态同步方法和非静态同步方法。
2023-09-14 17:37:25 59 1
原创 java面试题-java知识点-volatitle
因此,在使用volatile关键字时要慎重,并不是只要简单类型变量使用volatile修饰,对这个变量的所有操作都是原来操作,当变量的值由自身的上一个决定时,如n=n+1、n++ 等,volatile关键字将失效,只有当变量的值和自身上一个值无关时对该变量的操作才是原子级别的,如n = m + 1,这个就是原级别的。而普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什么时候被写入主存是不确定的,当其他线程去读取时,此时内存中可能还是原来的旧值,因此无法保证可见性。(1)分配内存空间。
2023-09-13 14:05:40 46 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人