Java中哪个关键字可以对对象加互斥锁
A. synchronized
B. volatile
C. serialize
D. static
答案是A, synchronized关键字是同步代码块关键字, 对对象加互斥锁
详解:
synchronized:
⽤来给对象和⽅法或者代码块加锁. 当它锁定⼀个⽅法或者⼀个代码块的时候, 同⼀时刻最多只有⼀个线程执⾏这个段代码
volatile:
⽤来确保将变量的更新操作通知到其他线程, 当把变量声明为volatile类型后, 编译器与运⾏时都会注意到这个变量是共享的, 因此不会将该变量上的操作与其他内存操作⼀起重排序. 然⽽, 在访问volatile变量时, 不会执⾏加锁操作, 因此也就不会使执⾏线程阻塞, 因此, volatile变量是⼀种⽐synchronized关键字更轻量级的同步机制
serialize:
Java对象序列化为⼆进制⽂件
static:
修饰变量, ⽅法, 静态代码块
静态变量:
1. 由static修饰的变量称为静态变量
2. 静态变量属于类, ⽽不属于某个类
3. 静态变量的副本只有⼀个
静态⽅法:
1. 在静态⽅法中只能调⽤静态变量和静态⽅法
2. 在⾮晶态⽅法中, 可以调⽤静态⽅法或者变量
3. 在静态⽅法中, 可以调⽤静态⽅法或者变量
4. 在⾮静态⽅法中, 可以调⽤静态⽅法或者变量static修饰的变量
5. 在静态⽅法中不能使⽤this和super关键字
静态代码块:
1. ⽤来给静态成员变量初始化
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论