Java中所有的线程都有优先级,优先级高的线程一定比优先级低的线程先执行完毕。
- A正确
- B错误
一个Thread对象只能调用一次start()方法,重复调用会抛出异常。
- A正确
- B错误
实现Runnable接口的类可以直接实例化并调用start()方法来启动线程。
- A正确
- B错误
守护线程(Daemon Thread)在所有用户线程结束后会自动随JVM一起退出。
- A正确
- B错误
Thread.sleep()方法在休眠期间会释放已经持有的对象锁。
- A正确
- B错误
继承Thread类和实现Runnable接口创建线程的效果完全相同,没有任何区别。
- A正确
- B错误
Java中用于实现线程同步的关键字是( )。
- Asynchronized
- Bvolatile
- Cfinal
- Dstatic
下列关于synchronized关键字的叙述中,正确的是( )。
- Asynchronized只能修饰方法
- Bsynchronized锁的是代码而不是对象
- Csynchronized是可重入锁
- Dsynchronized不能修饰静态方法
在Java中,wait()、notify()和notifyAll()方法定义在( )类中。
- AThread类
- BObject类
- CRunnable接口
- DLock接口
线程间通信中,notify()方法的作用是( )。
- A唤醒在该对象监视器上等待的单个线程
- B唤醒所有在该对象监视器上等待的线程
- C使当前线程进入等待状态
- D终止当前线程
在synchronized方法或代码块中调用wait()方法后,线程会( )。
- A继续持有锁并进入等待状态
- B立即释放锁并终止运行
- C释放锁并进入可运行状态
- D释放锁并进入等待状态
下列关于volatile关键字的说法中,正确的是( )。
- Avolatile能保证变量的原子性操作
- Bvolatile能保证变量的可见性
- Cvolatile可以替代synchronized的所有功能
- Dvolatile变量不能被多个线程同时访问
下列哪种情况不会导致线程释放对象锁( )。
- A调用wait()方法
- Bsynchronized代码块执行完毕
- C调用sleep()方法
- D线程执行完synchronized方法
在Java中,使用synchronized修饰实例方法时,该方法的锁对象是( )。
- Athis(当前对象实例)
- B方法的Class对象
- C方法的参数对象
- DThread.currentThread()
在多线程环境下,对共享变量进行读写操作时,为了保证数据一致性,应使用( )。
- Asynchronized
- Bvolatile
- Ctransient
- Dnative
下列关于死锁的叙述中,正确的是( )。
- A死锁发生后JVM会自动解除
- B死锁是多个线程互相等待对方释放锁的状态
- CJava中不可能发生死锁
- D增加线程数量可以避免死锁
在Java线程同步中,notifyAll()方法的作用是( )。
- A唤醒所有处于运行状态的线程
- B唤醒所有在该对象监视器上等待的线程
- C唤醒当前线程
- D终止所有等待的线程
下列关于synchronized代码块的叙述中,正确的是( )。
- Asynchronized代码块的锁对象只能是this
- Bsynchronized代码块不能嵌套使用
- Csynchronized代码块可以指定任意对象作为锁
- Dsynchronized代码块中发生异常时不会释放锁
在经典的生产者-消费者问题中,当缓冲区已满时,生产者线程应该( )。
- A调用wait()进入等待状态
- B继续向缓冲区添加数据
- C调用notify()唤醒其他线程
- D调用sleep()休眠一段时间
下列关于Java中线程安全集合类的说法中,正确的是( )。
- AArrayList是线程安全的
- BHashMap是线程安全的
- CHashSet是线程安全的
- DVector是线程安全的
本页仅提供题目与选项供学习参考,不含答案。如需系统练习、自动判分与错题本,欢迎前往主站《Java语言程序设计》在线练习。