知识单元九 多线程

简介: 知识单元九 多线程

1. 当某一线程正处于休眠状态,而另一个线程用 Thread 类中的 interrupt() 方法中断它时,抛出的异常类型是( )。 [单选题] *

IOException

RuntimeException

InterruptedException(正确答案)

ClassNotFoundException

2. Java中,线程必须属于一个进程,线程是程序运行中的(  )。

[单选题] *

字节流

字符流

对象流(正确答案)

执行流

3. Thread类中能运行线程的方法是(  )。

[单选题] *

resume()

start()(正确答案)

run()

init()

4. 当使用SomeThread t=new SomeThread()创建一个线程时,下列叙述中正确的是(  )。

[单选题] *

SomeThread类是包含run()方法的任意Java

SomeThread类一定要实现Runnable接口

SomeThread类是Thread类的子类(正确答案)

SomeThread类是Thread类的子类并且要实现Runnable接口

5. Java程序的并发机制是(  )。

[单选题] *

多线程(正确答案)

多接口

多平台

多态性

6. "以下选项中可以填写到横线处,让代码正确编译和运行的是(  )。

public class Test implements Runnable {


public static void main(String[] args) {


___________________________________


t.start();


System.out.println(""main"");


}


public void run() {


System.out.println(""thread1!"");


}


}"

[单选题] *

Thread t = new Thread(new Test());(正确答案)

Test t = new Test();

Thread t = new Test();

Test t = new Thread();

7. 编写线程类,要继承的父类是( )

[单选题] *

Object

Runnable

Serializable

Thread(正确答案)

8. 编写线程类,可以通过实现哪个接口来实现?

[单选题] *

Runnable(正确答案)

Throwable

Serializable

Comparable

9. 一个线程通过什么方法将处理器让给另一个优先级别相同的线程?

[单选题] *

wait

yield(正确答案)

join

sleep

10. Runnable接口定义了如下哪些方法?

[单选题] *

start()

stop()

resume()

run()(正确答案)

11. "如下代码创建一个新线程并启动线程:

Runnable target=new MyRunnable();

Thread myThread=new Thread(target);

问:如下哪些类可以创建target对象,并能编译正确?" [单选题] *

public class MyRunnable extends Runnable{public void run(){}}

public class MyRunnable extends Object{public void run(){}}

public class MyRunnable implements Runnable{public void run(){}}(正确答案)

public class MyRunnable extends Runnable{void run(){}}

12. "给出代码如下:

public class MyRunnable implements Runnable{

public void run(){}

public static void main(String args[]){

----------------------

}}

请问在虚线处,如下哪些代码可以创建并启动线程?" [单选题] *

new Runnable(MyRunnable).start();

new Thread(MyRunnable).run();

new Thread(new MyRunnable()).start();(正确答案)

new MyRunnable().start();

13. "对于下列程序,哪个叙述是正确的?

public class E{

public static void main(String args[]){

Target target=new Target();

Thread thread=new Thread(target);

thread.start();

}

}

class Target implements Runnable{

public void run(){

System.out.println(""ok"");

}

}"

[单选题] *

JVM认为这个应用程序共有两个线程(正确答案)

JVM认为这个应用程序只有一个主线程

JVM认为这个应用程序只有一个thread线程

thread的优先级是10

14. 下列关于Thread类提供的线程控制方法的说法中,错误的是( )。 [单选题] *

线程A中执行线程Bjoin()方法,则线程A等待直到B执行完成

线程A通过调用interrupt()方法来中断其阻塞状态

若线程A调用方法isAlive()返回值为false,则说明A正在执行中,也可能是可运行状态(正确答案)

currentThread()方法返回当前线程的引用

15. 线程对象的生命周期中,通常经历下面哪些状态( ) *

新建(正确答案)

运行(正确答案)

就绪(正确答案)

死亡(正确答案)

16. 下面关于进程、线程的说法正确的是( )。 *

进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。(正确答案)

线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。(正确答案)

Java多线程的运行与平台相关。(正确答案)

对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。(正确答案)

17. 有关线程的哪些叙述是对的? ( ) *

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

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

当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

一个线程可能因为不同的原因停止并进入就绪状态。(正确答案)

18. 线程通过()方法可以休眠一段时间,然后恢复运行。 [单选题] *

Arun

BsetPrority

Cyield

Dsleep(正确答案)

19.  

那个描述是正确的() [单选题] *

编译失败

运行时抛出异常

正常运行并输出 bar(正确答案)

正常运行但是什么也不会输出

目录
相关文章
|
Java 编译器 开发者
【并发编程的艺术】Java内存模型的顺序一致性
首先明确一点,顺序一致性内存模型是一个被理想化了的理论参考模型,提供了很强的内存可见性保证。其两大特性如下: 1)一个线程中的所有操作,必须按照程序的顺序来执行(代码编写顺序) 2)无论程序是否同步,所有线程都只能看到一个单一的操作执行顺序。每个操作都必须原子执行且立即对所有线程可见。
169 0
|
19天前
|
消息中间件 存储 负载均衡
C 语言多线程编程:并行处理的利剑
C语言多线程编程是实现并行处理的强大工具,通过创建和管理多个线程,可以显著提升程序执行效率,尤其在处理大量数据或复杂计算时效果显著。
|
3月前
|
数据采集 负载均衡 安全
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
本文提供了多个多线程编程问题的解决方案,包括设计有限阻塞队列、多线程网页爬虫、红绿灯路口等,每个问题都给出了至少一种实现方法,涵盖了互斥锁、条件变量、信号量等线程同步机制的使用。
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
|
4月前
|
安全 Java API
揭秘Java并发编程的神秘面纱:线程安全与性能优化之间的微妙舞蹈,如何让你的程序在多核时代中翱翔!
【8月更文挑战第12天】随着多核处理器的普及,Java并发编程越发重要。线程安全确保多线程环境下的程序一致性,而性能优化则让程序高效运行。通过同步机制如`synchronized`关键字或`ReentrantLock`接口,我们可以实现线程安全,如在银行账户存款操作中限制并发访问。然而,过度同步会导致性能下降,因此采用细粒度锁和利用Java并发工具类(如`ConcurrentHashMap`)可提高程序的并发能力。理解这些概念并加以实践,是每个Java开发者提升技能的关键。
50 0
|
6月前
|
存储 安全 程序员
c++理论篇——初窥多线程(一) 计算机内存视角下的多线程编程
c++理论篇——初窥多线程(一) 计算机内存视角下的多线程编程
|
7月前
|
资源调度 安全 调度
在讨论Python多线程与并发
在讨论Python多线程与并发
29 2
|
算法 安全 Java
深入理解多线程编程:并发世界的探险
在计算机编程领域,随着多核处理器的普及,多线程编程成为了一种常见的技术。多线程编程可以提高程序的性能,充分利用多核处理器的计算能力。然而,多线程编程并不容易,它引入了并发性和同步问题,需要开发者仔细思考和处理线程之间的竞争条件。本文将深入探讨多线程编程的概念、技术和最佳实践,帮助读者更好地应对并发编程挑战。
【多线程】线程池如何复用,怎么才能让面试官听懂我说的?
今天来说一下面试中常问到问题,我们知道线程池是帮助我们对线程资源的管理,只有我们合理的使用使用线程池,他才能做到事倍功半,但是你知道线程池是如何复用的吗?
|
存储 缓存 安全
Java并发编程系列之一并发理论基础
本系列文章开始Java并发编程的进阶篇的学习,为了初学者对多线程的初步使用有基本概念和掌握,前置知识会对一些基础篇的内容进行介绍,以使初学者能够丝滑入戏。
Java并发编程系列之一并发理论基础
|
Java
【多线程3:基础原理】
【多线程3:基础原理】
114 0