首页 > 试题广场 >

java 中哪个关键字可以对对象加互斥锁?

[单选题]

java 中哪个关键字可以对对象加互斥锁?

  • transient
  • synchronized
  • serialize
  • static
选 B: synchronized
synchronized  关键字  : 用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。
volatile:用来确保将变量的跟新操作通知到其他线程,当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。然而,在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比 synchronized关键字更轻量级的同步机制。
serialize:Java 对象序列化为二进制文件。
static关键字: static关键字可以修饰变量,方法,静态代码块。
                          静态变量:
                                          由static修饰的变量称为静态变量
                                          静态变量属于类,而不属于某个对象
                                          静态变量它的副本只有一个(静态变量在类中只加载一)
                         静态方法:
                                          在静态方法中只能调用静态变量和静态方法
                                          在非静态方法中,可以调用静态方法或者变量。
                                          在静态方法中不能使用this和super关键字。
                        静态代码块
                                          作用:用来给静态成员变量初始化
发表于 2017-01-07 21:43:07 回复(4)
  1. static 修饰符,用来创建类方法和类变量。
  2. final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
  3. abstract 修饰符,用来创建抽象类和抽象方法。
  4. synchronized 用于多线程的同步。用来给对象和方法或者代码块加锁,各线程互斥访问。
  5. volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
  6. transient:序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。
    关于以上修饰哪些能修饰类,哪些能修饰接口等等,参考:http://blog.csdn.net/dawn_after_dark/article/details/74527137
发表于 2017-07-09 10:36:53 回复(4)
选B
A、transient,反序列化修饰符,序列化的时候,类中的属性都会被复制,但是被transient和static修饰的属性不会被复制。
B、synchronized,同步锁,被synchronized修饰的方法或者代码块,同一时刻只允许被一个线程访问。
C、serialize,序列化
D、static,静态修饰符。可修饰成员变量和方法,内部类/接口,不可修饰局部变量和外部类/接口。
发表于 2018-07-13 10:51:43 回复(0)

涉及多线程,锁等知识点的题目,记住两个关键字:

  • volatile: 一般用来修饰变量;
  • synchronized:一般用来修饰对象、方法以及代码块;
发表于 2020-08-15 20:34:26 回复(0)
抓住关键字和锁两个信息锁定synchronized
发表于 2020-07-02 07:27:13 回复(0)
transient修饰符是指字段不会被序列化。
synchronized修饰符是指对象锁.
serialize 序列化.

发表于 2020-02-18 19:39:38 回复(0)
synchoronized 关键字, 可以给对对象和代码块加锁,当锁定一个方法或者代码快,只有一个线程执行这个
volatile:用来确保变量和新操作能够同志到其他的线程,但不会加锁,比较轻量级
serialize:对象序列化为二进制文件
static关键自 可以修饰变量,方法,静态代码块
发表于 2019-06-02 10:04:07 回复(0)
synchoronized 关键字, 可以给对对象和代码块加锁,当锁定一个方法或者代码快,只有一个线程执行这个 volatile:用来确保变量和新操作能够同志到其他的线程,但不会加锁,比较轻量级 serialize:对象序列化为二进制文件 static关键自 可以修饰变量,方法,静态代码块
发表于 2022-10-08 00:49:15 回复(0)
B中是Java多线程用来加锁用的名称
发表于 2021-12-29 20:14:00 回复(0)
synchronized关键字:主要是用来给对象和方法或者代码块加锁,若锁定一个方法或者是代码块的时候,同一个时刻最多只有一个线程执行这段代码。
发表于 2021-11-30 15:11:41 回复(0)
B
发表于 2021-11-15 17:52:23 回复(0)
transient,反序列化修饰符,序列化的时候,类中的属性都会被复制,但是被transient和static修饰的属性不会被复制。 serialize:Java 对象序列化为二进制文件。 synchronized 用于多线程的同步。用来给对象和方法或者代码块加锁,各线程互斥访问。 volatile用来确保将变量的跟新操作通知到其他线程,当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。然而,在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比 synchronized关键字更轻量级的同步机制。
编辑于 2021-05-26 16:22:24 回复(0)
加了锁,可不就是互斥了
发表于 2020-08-04 08:13:36 回复(0)
互斥,同一时刻只能被一个线程执行
编辑于 2020-02-12 00:42:04 回复(0)
编辑于 2019-05-09 02:24:36 回复(0)
选 B: synchronized synchronized  关键字  : 用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。 volatile:用来确保将变量的跟新操作通知到其他线程,当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。然而,在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比 synchronized关键字更轻量级的同步机制。 serialize:Java 对象序列化为二进制文件。 static关键字: static关键字可以修饰变量,方法,静态代码块。                           静态变量:                                           由static修饰的变量称为静态变量                                           静态变量属于类,而不属于某个对象                                           静态变量它的副本只有一个(静态变量在类中只加载一)                          静态方法:                                           在静态方法中只能调用静态变量和静态方法                                           在非静态方法中,可以调用静态方法或者变量。                                           在静态方法中不能使用this和super关键字。                         静态代码块                                           作用:用来给静态成员变量初始化 static 修饰符,用来创建类方法和类变量。 final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。 abstract 修饰符,用来创建抽象类和抽象方法。 synchronized 用于多线程的同步。用来给对象和方法或者代码块加锁,各线程互斥访问。 volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 transient:序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。 关于以上修饰哪些能修饰类,哪些能修饰接口等等,参考:http://blog.csdn.net/dawn_after_dark/article/details/74527137
编辑于 2017-10-18 08:25:22 回复(0)
b是什么意思,单词写错了
发表于 2017-04-04 09:00:11 回复(0)
b
发表于 2017-02-27 23:41:07 回复(0)
B
发表于 2017-02-08 22:35:35 回复(0)