多线程练习题卷

合集下载

Java多线程习题

Java多线程习题
C、Java.1ang.ThreadD、java.1ang.Runnable
9、下列说法中错误的一项是( )。
A、Applet必须全部重写其生命周期方法
B、Applet不必全部重写其生命周期方法
C、Applet中使用了线程,则需要重写相应的生命周期方法
D、stop()总是在destroy()之前被调用。
B、用于建立与某个数据源的连接可采用DriverManager类的getConnection方法
C、建立数据库连接时,必须要进行异常处理
D JDBC中查询语句的执行方法必须采用Statement类实现
12、运行下列程序,会产生什么结果()
public class X extends Thread implements Runable{ public void run(){
18•实现线程体的方式除了继承Thread类,还可以实现接口。
E)A、Cloneable B、Runnable C、Iterable D、Serializable二、填空题
1、 若在高优先级线程的run()方法中调用_____方法,则该线程将让出CPU使其他 —
的线程获得CPU的使用权。
2、 通过实现Runnable接口创建线程的过程是:将实现Runnable的一个亠作为
Java
知识点:
Java的多线程,实现多线程的两种方法,线程控制、调度方法
一、选择题
1、什么原因可导致线程停止执行。 ( )
A.线程调用了wait()方法;
B.线程调用了yield()方法;
C.线程调用了pause()方法;
D.线程调用了sleep()方法。
2、 哪个方法是实现Runnable接口所需的?
13、下面哪个方法可以在任何时候被任何线程调用? ()

java多线程练习题(打印版)

java多线程练习题(打印版)

java多线程练习题(打印版)### Java多线程练习题#### 题目一:实现一个简单的线程编写一个Java程序,创建一个线程,该线程打印出从1到10的数字。

```javapublic class SimpleThread extends Thread {public void run() {for (int i = 1; i <= 10; i++) {System.out.println(i);}}public static void main(String[] args) {SimpleThread thread = new SimpleThread();thread.start();}}```#### 题目二:线程同步编写一个Java程序,创建两个线程,它们交替打印字符串"A"和"B",直到每个线程打印5次。

```javapublic class ThreadSync {private static final Object lock = new Object();public static void main(String[] args) {Thread threadA = new Thread(() -> {for (int i = 0; i < 5; i++) {synchronized (lock) {System.out.print("A");lock.notify();try {lock.wait();} catch (InterruptedException e) { e.printStackTrace();}}}});Thread threadB = new Thread(() -> {for (int i = 0; i < 5; i++) {synchronized (lock) {System.out.print("B");lock.notify();try {lock.wait();} catch (InterruptedException e) { e.printStackTrace();}}}});threadA.start();threadB.start();}}```#### 题目三:生产者-消费者问题编写一个Java程序,模拟生产者-消费者问题。

多线程常见面试题及答案

多线程常见面试题及答案

多线程常见⾯试题及答案1、如何在Java中实现线程(4种)?1.继承Thread类,重写run⽅法(其实Thread类本⾝也实现了Runnable接⼝)2.实现Runnable接⼝,重写run⽅法3.实现Callable接⼝,重写call⽅法(有返回值)4.使⽤线程池(有返回值)2、在具体多线程编程实践中,如何选⽤Runnable还是Thread?Java中实现多线程有两种⽅法:继承Thread类、实现Runnable接⼝,在程序开发中只要是多线程,肯定永远以实现Runnable接⼝为主,因为实现Runnable接⼝相⽐继承Thread类有如下优势:1、可以避免由于Java的单继承特性⽽带来的局限;2、增强程序的健壮性,代码能够被多个线程共享,代码与数据是独⽴的;适合多个相同程序代码的线程区处理同⼀资源的情况。

3、Thread类中的start()和run()⽅法有什么区别?start()⽅法来启动线程,真正实现了多线程运⾏,这时⽆需等待run⽅法体代码执⾏完毕⽽直接继续执⾏下⾯的代码:通过调⽤Thread类的start()⽅法来启动⼀个线程,这时此线程是处于就绪状态,并没有运⾏。

然后通过此Thread类调⽤⽅法run()来完成其运⾏操作的,这⾥⽅法run()称为线程体,它包含了要执⾏的这个线程的内容,Run⽅法运⾏结束,此线程终⽌,⽽CPU再运⾏其它线程。

run()⽅法当作普通⽅法的⽅式调⽤,程序还是要顺序执⾏,还是要等待run⽅法体执⾏完毕后才可继续执⾏下⾯的代码:⽽如果直接⽤run⽅法,这只是调⽤⼀个⽅法⽽已,程序中依然只有主线程–这⼀个线程,其程序执⾏路径还是只有⼀条,这样就没有达到多线程的⽬的。

4、Java中Runnable和Callable有什么不同相同点:1. 两者都是接⼝;(废话)2. 两者都可⽤来编写多线程程序;3. 两者都需要调⽤Thread.start()启动线程;不同点:1. 两者最⼤的不同点是:实现Callable接⼝的任务线程能返回执⾏结果;⽽实现Runnable接⼝的任务线程不能返回结果;2. Callable接⼝的call()⽅法允许抛出异常;⽽Runnable接⼝的run()⽅法的异常只能在内部消化,不能继续上抛;注意点:Callable接⼝⽀持返回执⾏结果,此时需要调⽤FutureTask.get()⽅法实现,此⽅法会阻塞主线程直到获取‘将来’结果;当不调⽤此⽅法时,主线程不会阻塞!5、如何避免死锁?1. 加锁顺序按照顺序加锁是⼀种有效的死锁预防机制。

Android——多线程编程练习题

Android——多线程编程练习题

Android——多线程编程练习题随便选择两个城市作为预选旅游⽬标。

实现两个独⽴的线程分别显⽰10次城市名,每次显⽰后休眠⼀段随机时间(1000ms以内),哪个先显⽰完毕,就决定去哪个城市。

分别⽤Runnable接⼝和Thread类实现。

layout⽂件:1<?xml version="1.0" encoding="utf-8"?>2<LinearLayout xmlns:android="/apk/res/android"3 xmlns:tools="/tools"4 android:layout_width="match_parent"5 android:layout_height="match_parent"6 android:paddingBottom="@dimen/activity_vertical_margin"7 android:paddingLeft="@dimen/activity_horizontal_margin"8 android:paddingRight="@dimen/activity_horizontal_margin"9 android:paddingTop="@dimen/activity_vertical_margin"10 tools:context="com.hanqi.testapp2.PractiseActivity4"11 android:orientation="vertical">1213<TextView14android:layout_width="match_parent"15 android:layout_height="wrap_content"16 android:id="@+id/tvw1"/>17<TextView18android:layout_width="match_parent"19 android:layout_height="wrap_content"20 android:id="@+id/tvw2"/>2122<Button23android:layout_width="wrap_content"24 android:layout_height="wrap_content"25 android:id="@+id/btt1"26 android:text="随机选择"27 android:onClick="btn_onClick"/>28</LinearLayout>java类:1package com.hanqi.testapp2;23import android.os.Bundle;4import android.support.v7.app.AppCompatActivity;5import android.view.View;6import android.widget.Button;7import android.widget.TextView;8import android.widget.Toast;910public class PractiseActivity4 extends AppCompatActivity {1112 TextView tvw1;13 Button btt1;14 TextView tvw2;15 @Override16protected void onCreate(Bundle savedInstanceState) {17super.onCreate(savedInstanceState);18 setContentView(yout.activity_practise4);19 tvw1 = (TextView)findViewById(w1);20 btt1 = (Button)findViewById(R.id.btt1);21 tvw2 = (TextView)findViewById(w2);22 }23 String c1 = "北京";24 String c2 = "上海";25public void btn_onClick(View v)26 {27//创建⼦线程128new Thread(){29 @Override30public void run() {31for (int i=0;i<20;i++)32 {33if(i%2==0)34 {35 c1="";36 }37else38 {39 c1="北京";40 }41 runOnUiThread(new Runnable() {42 @Override43public void run() {44 tvw1.setText(c1);45 }46 });47//暂停48try {49 Thread.sleep((int) (Math.random()*1000));50 }51catch (Exception e)52 {5354 }55 }56 runOnUiThread(new Runnable() {57 @Override58public void run() {59 Toast.makeText(PractiseActivity4.this, c1 + "循环完成", Toast.LENGTH_SHORT).show();60 }61 });62 }63 }.start();64//创建⼦线程265new Thread(){66 @Override67public void run() {68for (int i=0;i<20;i++)69 {70if(i%2==0)71 {72 c2="";73 }74else75 {76 c2="上海";77 }78 runOnUiThread(new Runnable() {79 @Override80public void run() {81 tvw2.setText(c2);82 }83 });84//暂停85try {86 Thread.sleep((int) (Math.random()*1000));87 }88catch (Exception e)89 {9091 }92 }93 runOnUiThread(new Runnable() {94 @Override95public void run() {96 Toast.makeText(PractiseActivity4.this, c2 + "循环完成", Toast.LENGTH_SHORT).show();97 }98 });99 }100 }.start();101 }102103 }随便选择两个城市作为预选旅游⽬标。

多线程面试题c++ 4个线程设计问题

多线程面试题c++ 4个线程设计问题

多线程面试题c++ 4个线程设计问题
1.题目:子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码子线程与主线程必有一个满足条件(flag == num),不满足条件的那个线程不可能获取unique_lock(会在wait中释放),只有满足条件的线程才能获取锁,执行程序
2.题目:编写一个程序,开启3个线程,这3个线程的ID分别为A、
B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

3.题目(google笔试题):有四个线程1、2、3、4。

线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD。

初始都为空。

现要让四个文件呈如下格式:
A:1 2 3 4 1 2....
B:2 3 4 1 2 3....
C:3 4 1 2 3 4....
D:4 1 2 3 4 1....
4.题目:有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者读时写者也不能写。

5.题目:编写程序完成如下功能:
1)有一int型全局变量g_Flag初始值为0
2)在主线称中起动线程1,打印“this is thread1”,并将g_Flag 设置为1
3)在主线称中启动线程2,打印“this is thread2”,并将g_Flag 设置为2
4)线程序1需要在线程2退出后才能退出
5)主线程在检测到g_Flag从1变为2,或者从2变为1的时候退出。

java 多线程 编程题

java 多线程 编程题

java 多线程编程题
好的,以下是一个简单的Java 多线程编程题目:
题目:实现一个线程安全的计数器,当多个线程同时对计数器进行加1 操作时,计数器能够正确地累加计数。

要求:
1.计数器的初始值为0。

2.当多个线程同时对计数器进行加1 操作时,计数器能够正确地累加计数,保证计数
值的正确性。

3.使用synchronized 关键字保证计数器的线程安全性。

示例代码:
java
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
在这个示例代码中,我们定义了一个名为Counter 的类,它包含一个名为count 的整型变量和一个名为increment 的方法。

increment 方法用于将count 变量的值加1,并使用synchronized 关键字保证其线程安全性。

我们还定义了一个名为getCount 的方法,它也使用了synchronized 关键字来保证线程安全性,用于返回当前的计数值。

多线程试卷参考答案

多线程试卷参考答案

考试参考答案一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。

答案错选或未选者,该题不得分。

)1. D2. D3. B4. A5.A6. B7. A8. B9. B10.C11.D 12.A 13.D 14.A 15.C16.D 17.D 18.A 19.C 20.C21.C 22.C 23.B 24.A 25.C26. A 27. A 28. C29. B30.D31. A 32. D 33. D 34. C35.C36.C 37.A 38.C 39.C 40.C41.A 42.B 43.B 44.C 45.A46.B 47.B 48.C 49.B 50.C二、填空题1. ng.Thread2. 并发3.抢先调度4. stop()5. 死亡6. Thread7.可运行状态8.线程体9.返回线程的字符串信息10.用户11.寄存器12.虚拟的CPU 代码数据13.MAX_PRIORITY MIN_PRIORITY14.getPrority() setPrority()15.syschronized16.可运行状态阻塞状态17.封锁18.代码一组寄存器19.相互独立20.wait( )方法三、判断题(判断以下论述的正误,认为正确的就在答题相应位置划“T”,错误的划“F”)1. F2. T3. F4. F5. T6. T7. F8. T9.T 10. T11. F 12. T 13. T 14. F 15. T16. F 17. T 18. F 19.T 20. F四、简答题(回答要点,并简明扼要作解释)1. 答:线程是一段完成某个特定功能的代码,是程序中单个顺序的流控制。

但和进程不同的是,同类的多个线程是共享一块内存空间和一组系统资源,而进程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。

2. 答:线程从创建、运行到销往的过程称为线程的生命周期。

java多线程测试试题

java多线程测试试题

java多线程试题————————————————————————————————作者:————————————————————————————————日期:狂翔IT工作室多线程试程一.选择题1.下列说法中,正确的一项是() AA.单处理机的计算机上,2个纯种一官半职直不能并发执行B.单处理机的计算机上,2个线程实际能够并发执行C.一个线程可以包含多个线程D.一个进程只能包含一个线程2.下列说法中错误的一项是()AA.线程就是程序B.线程是一个程序的单个执行流B.多线程是指一个程序的多个执行流D.多线程用于实现并发3.下列哪个一个操作不能使线程从等待阻塞状态进入对象阻塞状态(D)A.等待阴塞状态下的线程被notify()唤B.等待阻塞状态下的纯种被interrput()中断C.等待时间到D.等待阻塞状态下的线程调用wait()方法4.下列哪个方法可以使线程从运行状态进入其他阻塞状态(A)A.sleepB.waitC.yieldD.start5.下列不是进程组成部分的一项是(D)A.代码B.数据C.内核状态D.显示器6.下列哪一个不属于java线程模型的组成部分(D)A.虚拟的CPUB.虚拟CPU执行的代码C. 代码所操作的数据D.执行流7.下列说法中错误的一项是(C)A.Java中的第一个线程都属于某个线程组B.线程只能在其创建时设置所属的线程组C.线程创建之后,可以从一个线程组转移到另一个线程组D.新建的线程默认情况下属于其父线程所属的线程组8.下列不属于线程组成部分的一项是(C)A.程序计数器B.堆栈C. 进程地十空间中的代码D.栈指针9.下列关于JA V A线程模型的说法中,错误的一项是(A)A.Java线程模型包括计算机的CPUB.代码可以与其他线程共享C. 数据可以被多个线程共享D.线程模型在ng.Thread类中被定义10.下列说法中错误的一项是(D)A.一个线程是一个Thread类的实例B.线程从传递给纯种的Runnable实例run()方法开始执行C.线程操作的数据来自Runnable实例D.新建的线程调用start()方法就能立即进入运行状态11.下列关于Thread类提供的线程控制方法的说法中,错误的一项是(D)A.在线程A中执行线程B的join()方法,则线程A等待直到B执行完成B.线程A通过调用interrupt()方法来中断其阻塞状态C.若线程A调用方法isAlive()返回值为true,则说明A正在执行中D.currentThread()方法返回当前线程的引用12.下列说法中,错误的一项是()A.对象锁在synchronized()语句执行完之后由持有它的线程返还B.对象锁在synchronized()语句中出现异常时由持有它的线程返还C.当持有锁的线程调用了该对象的wait()方法时,线程将释放其持有的锁D.当持有锁的线程调用了该对象的构造方法时,线程将释放其持有的锁13.下面的哪一个关键字通宵用来对对象的加锁,从而使得对对象的访问是排他的 AA.sirialize B transient C synchronized D static14.下列关于线程的说法以中,正确的一项是(D)A.由同一类创建的多个线程都同时运行结束B.创建线程只能通过继承ng.Thread类C.调用suspend()方法暂停的一个线程将不会再被重新执行D.程序的执行完毕与超级线程(daemon threads)无关15.下列说法中错误的一项是(C)A.可串行化的类必须实现Serializable接口B.可串行化的类中的静态变量可以不被串行化C.private数据访问权限能够限制数据不被串行化D.对象串行化使用java语言提供的默认机制16.下列说法中错误的一项是(C)A.可串行化的类必须实现Serializable接口B.可串行化的类中的静态变量可以不被串行化C.private数据访问权限能够限制数据不被串行化D.对象串行化java语言提供的默认机制17.下列说法中正确的一项是(A)A.代码和数据是进程的组成部分B.代码和数据是线程的组成部分C. 进程是轻型的线程D.线程中包括线程18. 下列说法中错误的一项是(C)A.java的纯种体由Thread类的run()方法定义B.线程创建时已经确定了提供线程体的对象C.在程序中通过调用Thread类的run()方法创建线程对象D.java中每一个线程都有自己的名字19. 下列说法中错误的一项是(B)A.共享数据的所有访问都必须使用synchronized加锁B.共享数据的访问不一定全部使用synchronized加锁C.所有的对共享数据的访问都是临界区D.临界区必须使用syschronized标识20.下列有关线程的叙述中正确的一项是(B)A.一旦一个线程被创建,它就立即开始运行B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行C.当一个线程因为抢占机制而停止运行时,它被放在可运行队列的前面D.一个线程可能因为不同的原因而终止并进入终止状态二.填空题1. 在操作系统中,被称做轻型的进程是线程2. 多线程程序设计的含义是可以将一个程序任务分成几个并行的任务3. 在Java程序中,run()方法的实现有两种方式:实现Runnable接口和继承Thread类4.线程的高度是指在单个CPU上以某种顺序运行多个线程5.多个线程并发执行时,各个线程中语句的执行顺序是确定的,但是线程之间的相对执行顺序是不确定的6.Java中的对象锁是一种独占的排他锁7.程序中可能出现一种情况:多个纯种互相等待对方持有的锁,而在得到对方的锁之前都不会释放自己的锁,这就是死锁.8. notyfyAll() 方法将对象wait pool中的所有纯种都移到lock pool中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多线程一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。

答案错选或未选者,该题不得分。

)501.下述哪个选项为真?( )A.Error类是一个RoutimeException异常B.任何抛出一个RoutimeException异常的语句必须包含在try块之内C.任何抛出一个Error对象的语句必须包含在try块之内D. 任何抛出一个Exception异常的语句必须包含在try块之内2.下列关于Java线程的说法哪些是正确的?( )A.每一个Java线程可以看成由代码、一个真实的CPU以及数据3部分组成B.创建线程的两种方法,从Thread类中继承的创建方式可以防止出现多父类问题C.Thread类属于java.util程序包D.以上说法无一正确3.哪个关键字可以对对象加互斥锁?( )A.transientB.synchronizedC.serializeD.static4.下列哪个方法可用于创建一个可运行的类?()A.public class X implements Runable { public void run() {……} }B. public class X implements Thread { public void run() {……} }C. public class X implements Thread { public int ru n() {……} }D.public class X implements Runable { protected void run() {……} }5.下面哪个选项不会直接引起线程停止执行?( )A.从一个同步语句块中退出来B.调用一个对象的wait方法C.调用一个输入流对象的read方法D.调用一个线程对象的setPriority方法6.使当前线程进入阻塞状态,直到被唤醒的方法是( )A.resume()方法B.wait()方法C.suspend()方法D.notify()方法7.运行下列程序,会产生的结果是( )public class X extends Thread implements Runnable {public void run(){System.out.println(“this is run()”);}public static void main(String[] args){Thread t=new Thread(new X());t.start();}}A.第一行会发生编译错误B. 第六行会发生编译错误C.第六行会发生运行错误D.程序会运行和启动ng.ThreadGroup类的作用为( )A.使任何类都可以为线程提供线程体B.定义了线程与交互的方法C.提供了线程组或组中的每个线程进行操作的方法D.以上都不是9.实现线程的创建有( )方法A.一种B. 两种 C.三种 D.四种10.一个进程可以包含( )个线程A.一B. 二C. 三D.四11.Java中的线程模型包含( )A.一个虚拟处理机B.CPU执行的代码C.代码操作的数据D.以上都是12.关于线程组以下说法错误的是( )A.在应用程序中线程可以独立存在,不一定要属于某个线程B.一个线程只能创建时设置其线程组C.线程组由ng包中的ThreadGroup类实现D.线程组使一组线程可以作为一个对象进行统一处里或维护13.下列定义线程方法正确的是( )A.Public Thread();B.Public Thread(Runnable target);C.Public Thread(ThreadGroup group,Runnable target);D.以上都正确14.以下不属于Thread类提供的线程控制方法是( )A.break()B.sleep()C.yield()D.join()15.下列关于线程的说法正确的是( )A.线程就是进程B.线程在操作系统出现后就产生了C.Soloris是支持线程的操作系统D.在单处理器和多处理器上多个线程不可以并发执行16.下列不属于线程生命周期状态的是( )A. 新建状态B.可运行状态C. 运行状态D.解锁状态17.以下不属于Thread类的线程优先级静态常量的是( )A.MIN_PRIORITYB.MAX__PRIORITYC.NORM__PRIORITYD.BEST__PRIORITY18.( )关键字可以对对象加互斥锁。

A.synchronizedB.transientC.serializeD.static19.下列( )方法和resume()方法相互搭配,使线程停止执行,然后调用resume()方法恢复线程。

A.interrupt()B.stop()C.suspend()D.yield()20.Thread类的方法中,getName()方法的作用是( )A.返回线程组的名称B.设置线程组的名称C.返回线程的名称D.设置线程的名称21.线程调用了sleep()方法后,该线程将进入( )状态A.可运行状态B.运行状态C.阻塞状态D.终止状态22.下列( )类或接口定义了线程同步与交互的方法。

A.ThreadB.RunnableC.ObjectD.ThreadGroup23.Java中线程是由线程类的( )方法定义的。

A.init()B.run()C.application()D.main()24.线程控制方法中,stop()的作用是( )A.强行终止线程B.使比其低的优先级线程运行C.只让给同优先级运行D.返回当前线程的引用25.在以下( )情况下,线程就进入可运行状态。

A.线程调用了sleep()方法时B.线程调用了join()方法时C.线程调用了yield()方法时D.以上都是26.下列说法中,正确的一项是()A.单处理机的计算机上,2个线程实际上不能并发执行B.单处理机的计算机上,2个线程实际上能够并发执行C.一个线程可以包含多个进程D.一个进程可以包含多个线程27.下列说法中错误的一项是()A.线程就是程序B.线程是一个程序的单个执行流C.多线程是指一个程序的多个执行流D.多线程用于实现并发28.下列关于Thread类的线程控制方法的说法中错误的一项是()A.线程可以通过调用sleep()方法使比当前线程优先级的线程运行B.线程可以通过调用yield()方法和当前线程优先级一样的线程运行C.线程sleep()方法调用结束后,该线程进入运行状态D.若没有相同优先级的线程处于可运行状态,县城调用yield()方法时,当前线程将继续执行30.下列哪一个操作不能使线程从等待阻塞状态进入对象锁阻塞状态?A.等待阻塞状态下的线程被notify()唤醒B.等待阻塞状态下的线程被interrput()中断C.等待时间到D.等待阻塞状态下的进程调用wait()方法31.下列哪一个方法可以使线程从运行状态进入其他阻塞状态?A. sleep()B. wait()C. yield()D. start()32.下列哪一个不属于Java线程模型的组成部分?A.虚拟的CPUB.虚拟CPU执行的代码C.代码所操作的数据D.执行流B.输出“INTERRUPTED”C.输出“DONE WAITING”D.编译通过,但是不输出任何字符串34.下列哪一种情况一定不会使当前的线程暂停执行?()A.该线程抛出一个InterruptedExceptionB.该线程调用sleep()方法C.该线程创建一个新的子线程D.该线程从输入流读取文件数据35.下列说法中错误的一项是()A.Java中的每一个线程都属于某个线程组B.线程只能在其创建时设置所属的线程组C.线程创建之后,可以从一个线程组转移到另一个线程组D.新建的线程组默认情况下属于其父线程所属的线程组36.下列不属于线程组成部分的一项是()A. 程序计数器B. 堆栈C. 进程地址空间中的代码 C. 栈指针37.下列关于Java线程模型的说法中,错误的一项是()A.Java线程模型包括了计算机的CPUB.代码可以与其他线程共享C.数据可以被多个线程共享D.线程模型在ng.Thread类中被定义38.下列关于Thread类提供的线程控制方法的说法中,错误的一项是()A.在线程a中执行线程b的join()方法,则线程a等待直到b执行完成B.线程a通过调用interrupt()方法来中断其阻塞状态C.若线程a调用方法isAlive()返回值为true,则说明a正在执行中D.currentThread()方法返回当前线程的引用39.下面的哪一个关键字通常用来对对象加锁,从而使得对对象的访问是排他的?()A. serializeB. transientC. synchronizedD. static40.下列说法中错误的一项是()A.可串行化的类必须实现Serializable接口B.可串行化的类中的静态变量可以不被串行化C.private数据访问权限能够限制数据不被串行化D.对象串行化使用Java语言提供的默认机制41.下列说法中正确的一项是()A.代码和数据是进程的组成部分B.代码和数据是线程的组成部分C.进程是轻型线程D.线程中包含进程42.下列说法中错误的一项是()A.共享数据的所有访问都必须使用synchronized加锁B.共享数据的访问不一定全部使用synchronized加锁C.所有的对共享数据的访问都是临界区D.临界区必须使用synchronized标识43.下列有关线程的叙述中正确的一项是()A.一旦一个线程都创建,它就立即开始运行B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行C.当一个线程因为抢占机制而停止运行时,它被放在课运行队列的前面D.一个线程可能因为不同的原因停止并进入终止状态44.下列方法中,不属于Thread类提供的线程控制方法的一个是()A. sleep()B. interrupt()C. init()D. yield()45.实现Runnable接口创建一个线程的语句是()Thead t = new Thead (target)Thead t = new Thead ();t.target=targetThead t = new Thead ();T.start(target)Thead t = new Thead ();T.run(target)Thead类定义与下列哪一个包中?()A. java.ioB. ngC. java.utilD. java.awt46.下列说法中,错误的一项是()A.实现了Runnable接口的类,可以通过extends来继承其他的类B.实现了Runnable接口的类,不能继承其他的类C.Thread类的子类应该是关于CPU行为的类D.Thread类的子类也实现了Runnable接口47.下列是通过实现Runnable接口创建的类,其中正确的一项是()A. class A3 implements Runnable{void run(){//··········}}B. class A3 extends Runnable{public void run(){//··········}}C. class A3 implements Runnable{public void run(){//··········}}D. class A3 implements Runnable{//··········}48.Thread类的常量NORM_PRIORITY代表的优先级是()A.最低优先级B.普通优先级C.最高优先级D.不代表任何优先级50.下列哪一个包给出了Runnable接口的定义?()A. java.utilB. java.ioC. ngD. java.sql二、填空题201.线程模型在Java中是由________类进行定义和描述的。

相关文档
最新文档