全国信息技术应用考试

如果不能很好的控制线程的运行和停止,容易引起死锁。下列()方法是安全的线程停止方法。A、stop()B、suspend()C、interrupt()D、轮询循环

题目

如果不能很好的控制线程的运行和停止,容易引起死锁。下列()方法是安全的线程停止方法。

  • A、stop()
  • B、suspend()
  • C、interrupt()
  • D、轮询循环
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

resume( )方法恢复哪些线程的执行?

A.通过调用stop( )方法而停止的线程

B.通过调用sleep( )方法而停止运行的线程

C.通过调用wait( )方法而停止运行的线程

D.通过调用suspend( )方法而停止运行的线程


正确答案:D
解析: Thread的API文档说明此方法恢复被挂起的线程。首先调用此线程的无参数的 checkAccess( )方法,这可能在当前线程上抛出SecurityException异常,如果此线程是活动的但被挂起,它将被恢复并继续其执行进程。

第2题:

如果线程调用下列方法,不能保证使该线程停止运行的是

A ) sleep ()

B ) stop ()

C ) yield ()

D ) wait ()


正确答案:C

第3题:

如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是( )。

A.sleep()方法的时间到

B.获得了对象的锁

C.线程在调t.join()方法后,线程t结果

D.wait()方法结束


正确答案:D
解析:walt()会使线程放弃对象锁,进入等待此对象的等待锁定池。

第4题:

如果线程调用下列方法,不能保证使该线程停止运行的是

A.sleep()

B.stop()

C.yield()

D.wait()


正确答案:D
解析:yield()方法的功能是,线程暂停,让出CPU,使同优先级的其他线程运行。如果不存在有机会运行的线程,yield()方法将直接返回,线程继续执行。

第5题:

下列哪个选项不能使当前线程停止执行()。

A.一个异常被抛出

B.线程执行了sleep()调用

C.高优先级的线程处于可运行状态

D.当前线程产生了一个新线程


参考答案:D

第6题:

下列关于线程的说法中,正确的是

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

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

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

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


正确答案:B
解析:线程被创建后,如果调用start()方法,线程便处于就绪状态,即可执行状态,但并不一定立即得到执行。当调用了yield()方法之后,线程放在处于同一个优先级的可执行的线程队列的后面。当阻塞的线程获得锁后,将进入就绪状态,并不一定立即执行。

第7题:

对于死锁的描述,下面四种说法不正确的是( )。

A.当两个线程互相等待对方释放同步锁时会发生死锁

B.Java虚拟机没有检测和处理死锁的措施

C.一旦出现死锁,程序会发生异常

D.处于死锁状态的线程处于阻塞状态,无法继续运行


参考答案:C

第8题:

下列关于Java多线程并发控制机制的叙述中,错误的是

A.Java中对共享数据操作的并发控制是采用加锁技术

B.线程之间的交互,提倡采用suspend()/resume()方法

C.共享数据的访问权限都必须定义为private

D.Java中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生


正确答案:B
解析:本题考查多线程的并发控制机制。Java中对共享数据操作的并发控制采用传统的封锁技术,也就是给对象加锁,选项A说法正确。线程之间的交互,提倡采用wait()和notify()方法,这两个方法是java.lang.object类的方法,是实现线程通信的两个方法,不提倡使用suspend()和resume()方法;它们容易造成死锁,所以选项B说法错误。共享数据的访问权限都必须定义为private,不能为public或其他,选项C说法正确。Java中没有提供检测与避免死锁的专门机制,因此完全由程序进行控制,应用程序员可以采用某些策略防止死锁的发生,选项D说法正确。

第9题:

如果线程调用下列方法,不能保证使该线程停止运行的是( )。A.sleep( )B.stop( )SXB

如果线程调用下列方法,不能保证使该线程停止运行的是( )。

A.sleep( )

B.stop( )

C.yield( )

D.wait( )


正确答案:C
线程的方法中sleep()方法的作用是使比当前线程优先级低的线程运行。该方法使-个线程暂停运行-段固定时间。在休眠时间内,线程将不运行,低优先级的线程将有机会运行。yield()方法为只让给同等优先级的线程运行。如果没有同等优先级的线程是可运行状态,yield()方法将什么也不做,即线程将继续运行。stop()方法是强行终止线程。wait()方法是线程问交互的方法,是使-个线程停止运行,进入等待状态。

第10题:

有关线程的哪些叙述是对的? ( ) Ⅰ:一旦一个线程被创建,它就立即开始运行 Ⅱ:使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行 Ⅲ:当一个线程因为抢先机制而停止运行时,它被放在可运行队列的前面 Ⅳ:一个线程可能因为不同的原因停止(cease)并进入就绪状态

A.Ⅱ、Ⅲ

B.Ⅱ、Ⅳ

C.Ⅰ、Ⅱ

D.Ⅲ、Ⅳ


正确答案:B
解析:本题是考查对线程概念的掌握。一个新创建的线程并不是自动的开始运行的,必须调用它的start()方法使之将线程放入可运行态(runnable state),这只是意味着该线程可被JVM的线程调度程序调度而不是意味着它可以立即运行。线程的调度是抢先式的,而不是分时间片式的。具有比当前运行线程高优先级的线程可以使当前线程停止运行而进入就绪状态。不同优先级的线程间是抢先式的,而同级线程间是轮换式的。一个线程停止运行可以是因为不同原因,可能是因为更高优先级线程的抢占,也可能是因为调用sleep()方法。而即使是因为抢先而停止也不一定就进入可运行队列的前面,因为同级线程是轮换式的,它的运行可能就是因为轮换,而它因抢占而停止后只能在轮换队列中排队而不能排在前面。

更多相关问题