下面关于使用同步代码块描述正确的是( )
A: 同步代码块中的锁对象可以是任意类型的对象
B: 当多个线程共享的锁对象必须是唯一的
C: 锁对象的创建代码不能放到run()方法中
D: 当线程执行同步代码块时,首先会检查锁对象的标志位
A: 同步代码块中的锁对象可以是任意类型的对象
B: 当多个线程共享的锁对象必须是唯一的
C: 锁对象的创建代码不能放到run()方法中
D: 当线程执行同步代码块时,首先会检查锁对象的标志位
A,B,C,D
举一反三
- 同步代码块中的锁对象可以是任意类型的对象,但多个线程共享的锁对象必须是【 】的
- 同步代码块中的锁对象可以是任意类型的对象
- 线程同步中,对象的锁在()情况下持有线程返回 A: 当synchronized()语句块执行完后 B: 当在synchronized()语句块执行中出现例外(exception)时 C: 当持有锁的线程调用该对象的wait()方法时 D: 以上都是
- 调用object.wait()时,线程先要获取这个对象的锁,当前线程必须与锁对象保持同步,把当前线程添加到等待队列中,随后另一线程可以同步同一个对象锁来调用notify(),这样将唤醒原来等待中的线程,然后释放该锁
- 同步代码块的作用是() A: 保证多线程访问数据的安全 B: 保证同步代码块中只有一个线程运行 C: 同步代码块可以避免线程的随机性 D: 同步代码块提高了线程的运行速度
内容
- 0
当多个线程使用同一个共享资源时,可以将处理共享资源的代码放置在一个代码块中,使用【 】关键字来修饰,被称作同步代码块
- 1
同步代码块的格式是synchronized(对象){}。( )
- 2
下列情况中,不会使线程返回所持有的对象锁的是( )。 A: 当synchronized() 语句块执行完毕 B: 当调用了线程的suspend() 方法 C: 当synchronized() 语句块中出现异常 D: 当持有锁的线程调用wait() 方法
- 3
下列情况中,不会使线程返回所持有的对象锁的是( )[br][/br](1.0) A: 当synchronized()语句块执行完毕 B: 当调用了线程的suspend()方法 C: 当在synchronized()语句块中出现异常(exception) D: 当持有锁的线程调用该对象的wait()方法
- 4
下列关于多线程中的静态同步方法说法中,正确的是() A: 静态同步方法的锁不是this,而是该方法所在类的class对象 B: 静态同步方法的锁既可以是this,也可以是该方法所在类的class对象 C: 一个类中的多个静态同步方法可以同时被多个线程执行 D: 不同类的静态同步方法被多线程访问时,线程间需要等待