下列说法中错误的一项是______。A.当线程获得了某个对象的排他锁时,它可以独自访问该对象,而其他线程无法访问B.当线程获得了某个对象的排他锁时,它可以独自访问该对象,其他线程也可以通过某种策略访问C.临界区可以是一个方法D.程序中单独并发的线程可以对同一个对象进行访问

题目

下列说法中错误的一项是______。

A.当线程获得了某个对象的排他锁时,它可以独自访问该对象,而其他线程无法访问

B.当线程获得了某个对象的排他锁时,它可以独自访问该对象,其他线程也可以通过某种策略访问

C.临界区可以是一个方法

D.程序中单独并发的线程可以对同一个对象进行访问


相似考题
更多“下列说法中错误的一项是______。A.当线程获得了某个对象的排他锁时,它可以独自访问该对象,而其他 ”相关问题
  • 第1题:

    下面关于对象加锁的叙述错误的是( )。

    A.当一个线程获得了对象的锁后,其他任何线程不能对该对象进行任何操作

    B.对象锁的使用保证了共享数据的一致性

    C.java中的对象锁是共享锁

    D.对象锁只对临界区操作才有意义


    正确答案:C

  • 第2题:

    下列关于线程组的说法中,错误的是( )。

    A.一个线程只能在创建时设置其线程组

    B.线程组使一组线程可以作为一个对象进行统一处理和维护

    C.在应用程序中线程可以独立存在,不一定要属于某个线程组

    D.线程组由java.lang包中的ThreadGroup类来实现


    正确答案:C
    解析:Java语言中,每个线程都必须归属于一个线程组。线程组可以把一组线程作为单个对象进行统一的处理或维护。线程在创建时必须显示确定其归属的线程组,其他任何时候都不允许更改线程所属的线程组。线程创建时默认继承父进程的线程组,线程组由java.lang包中的 ThreadGroup类来实现。

  • 第3题:

    下列说法中错误的一项是 ( )

    A.使用继承Thread类创建线程,可以直接调用线程的方法

    B.通过实现Runnable接口创建线程,体现了面向对象的思想

    C.Thread类从面向对象的角度看,是虚拟CPU的封装

    D.通过实现Runnable接口创建线程,会影响Thread类的体系


    正确答案:D
    解析:选项D的说法是错误的,通过实现Runnable接口创建线程,不会影响 Thread类的体系。其他选项是正确的。

  • 第4题:

    关于线程说法不正确的是()。

    • A、在android中,我们可以在主线程中,创建一个新的线程
    • B、在创建的新线程中,它可以操作UI组件
    • C、新线程可以和Handler共同使用
    • D、创建的Handler对象,它隶属于创建它的线程

    正确答案:B

  • 第5题:

    如果不允许其他事务对某一数据对象加任何类型的锁,则应对该数据对象加上()。

    • A、共享锁
    • B、排他锁
    • C、S锁
    • D、X锁

    正确答案:B

  • 第6题:

    下面四个选项中,哪些是线程进入阻塞状态的原因?()

    • A、线程试图获取某个对象的同步锁,而该锁被其它线程持有
    • B、线程调用了另一个线程的join()方法
    • C、当线程调用了一个阻塞式的IO方法
    • D、线程调用了setDaemon(boolean b)方法

    正确答案:A,B,C

  • 第7题:

    关于模式适用性,在以下情况可以使用builder模式?()

    • A、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
    • B、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
    • C、当构造过程必须允许被构造的对象有不同的表示时
    • D、一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为

    正确答案:B

  • 第8题:

    多选题
    下面四个选项中,哪些是线程进入阻塞状态的原因?()
    A

    线程试图获取某个对象的同步锁,而该锁被其它线程持有

    B

    线程调用了另一个线程的join()方法

    C

    当线程调用了一个阻塞式的IO方法

    D

    线程调用了setDaemon(boolean b)方法


    正确答案: A,B
    解析: 暂无解析

  • 第9题:

    单选题
    关于线程说法不正确的是()。
    A

    在android中,我们可以在主线程中,创建一个新的线程

    B

    在创建的新线程中,它可以操作UI组件

    C

    新线程可以和Handler共同使用

    D

    创建的Handler对象,它隶属于创建它的线程


    正确答案: C
    解析: 暂无解析

  • 第10题:

    单选题
    线程同步中,对象的锁在()情况下持有线程返回
    A

     当synchronized()语句块执行完后

    B

     当在synchronized()语句块执行中出现例外(exception)时

    C

     当持有锁的线程调用该对象的wait()方法时

    D

     以上都是


    正确答案: C
    解析: 暂无解析

  • 第11题:

    多选题
    对于wait()方法,下面说法正确的是?()
    A

    wait()方法的调用者是同步锁对象

    B

    wait()方法使线程进入等待状态

    C

    调用同一锁对象的notify()或notifyAll()方法可以唤醒调用wait()方法等待的线程

    D

    调用wait()方法的线程会释放同步锁对象


    正确答案: A,B,C,D
    解析: 暂无解析

  • 第12题:

    判断题
    当一个线程进入一个对象的方法后,其它线程也可以进入该对象的方法。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第13题:

    下列说法中错误的一项是

    A.当线程需要在synchronized块中等待共享数据状态改变时,则需要调用wait()方法

    B.当线程需要在synchronized块中等待共享数据状态改变时,则需要调用notify()方法

    C.线程在synchronized块中执行完操作后,调用notify()方法通知正在等待的线程重新占有锁

    D.wait()和notify()可以实现线程的同步操作


    正确答案:B
    解析:本题考查线程间交互的概念。当线程进入synchronized块后,共享数据的状态并不一定满足该线程的需要,它要等待其他线程将共享数据改变为所需要的状态后才能继续执行,但由于此时它占有了该对象的锁,其他线程无法对共享数据进行操作,此时线程调用wait()方法进入等待状态,并且暂时释放共享数据的对象锁,其他线程可以获得该对象锁,进入synchronized块进行操作,操作完成之后,再调用notify()方法通知等待的线程重新占有锁,这样就实现了线程的同步操作。由此可见,wait()方法是线程需要在 synchronized块中等待共享数据状态改变时调用,而notify()方法是线程在synchronized块中执行完操作后调用,用来通知正在等待的线程重新占有锁,选项B的说法错误。

  • 第14题:

    下列关于Thread类的说法中,错误的一项是______。

    A.任何实现Runnable接口的对象都可以作为Thread类构造方法的target参数

    B.name参数若为null,Java会给线程赋予一个惟一的名称

    C.Thread类本身没有实现Runnable接口

    D.当线程启动时,target参数表示的对象的run()方法将被调用


    正确答案:C

  • 第15题:

    当数据对象A被事务加上排他锁,则其他事务对A______。

    A.加排他式封锁

    B.不能再加任何类型的锁

    C.可以加排他式封锁和保护式封锁

    D.加保护式封锁


    正确答案:B
    解析:排他锁又称写锁(简称X锁,当事务对数据对象加了X锁后,则只允许T读取和修改该数据,其他的任何事务都不能再对它加任何类型的锁,直到事务释放了该数据对象的锁。

  • 第16题:

    当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的方法?


    正确答案: 不可以,一个对象的方法只能由一个线程访问。

  • 第17题:

    当两位用户中的每一位都对一个单独的对象进行了锁定,而他们又要获取对方对象的锁时,将会发生()。

    • A、共享锁
    • B、死锁
    • C、排他锁

    正确答案:B

  • 第18题:

    线程同步中,对象的锁在()情况下持有线程返回

    • A、 当synchronized()语句块执行完后
    • B、 当在synchronized()语句块执行中出现例外(exception)时
    • C、 当持有锁的线程调用该对象的wait()方法时
    • D、 以上都是

    正确答案:D

  • 第19题:

    下列关于权限的说法错误的是()

    • A、权限是指执行特定类型的SQL语句或访问其他用户的对象的权利
    • B、DM服务器权限分为系统权限和对象权限两种
    • C、系统权限不属于某个特定的方案对象
    • D、不能为用户定义针对某个模式对象的对象权限

    正确答案:D

  • 第20题:

    单选题
    如果不允许其他事务对某一数据对象加任何类型的锁,则应对该数据对象加上()。
    A

    共享锁

    B

    排他锁

    C

    S锁

    D

    X锁


    正确答案: C
    解析: 暂无解析

  • 第21题:

    问答题
    当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的方法?

    正确答案: 不可以,一个对象的方法只能由一个线程访问。
    解析: 暂无解析

  • 第22题:

    单选题
    下列关于线程的说法中,正确的是(  )。
    A

    一个线程一旦被创建,就立即开始运行

    B

    使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行

    C

    当运行状态的线程因为调用了yield()方法而停止运行,它一定被放在可运行线程队列的前面

    D

    当因等待对象锁而被阻塞的线程获得锁后,将直接进入运行状态


    正确答案: A
    解析:
    A项和B项,在Java中,调用一个线程类的构造方法,便创建了一个线程,新建的线程调用start()方法将使线程的状态从New转换为Runnable,Runnable表示系统处于运行就绪状态,此时线程仅仅是可以运行,但不一定在运行中;C项,yield()方法使具有与当前线程相同优先级的线程有运行的机会,如果没有同等优先级的线程是可运行状态,yield()方法将什么也不做,只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行,不一定被放在可运行线程队列的前面;D项,如果线程中使用synchronized来请求对象的锁,但没有获得时,进人对象锁阻塞状态,该状态下的线程当获得对象锁后,将进入可运行状态。

  • 第23题:

    单选题
    下列情况中,不会使线程返回所持有的对象锁的是(  )。
    A

    当synchronized()语句块执行完毕

    B

    当调用了线程的suspend()方法

    C

    当在synchronized()语句块中出现异常(Exception)

    D

    当持有锁的线程调用该对象的wait()方法;


    正确答案: A
    解析:
    对象的锁在如下几种情况下由持有线程返还:①当synchronized()语句块执行完后;②当在synchronized()语句块中出现异常(exception)时;③当持有锁的线程调用该对象的wait()方法时。而调用线程的suspend()方法只是使线程暂时停止执行,可以使用其他线程调用resume()方法恢复执行。