黑猴子的家:Java SE 练习题第九章

尾部都有答案

第九章练习题(多线程机制)

(1)线程由以下哪些部分组成?(选三项)

A. 虚拟的CPU
B. CPu执行的代码
C. 支持代码工作的数据
D. 进程

(2)创建线程的时候必须实现哪项接口?

A. Runnable
B. Thread
C. Run
D. Start

(3)启动一个线程的方法是哪项?

A. join()
B. run()
C. start()
D. sleep()

(4)当一个处于阻塞状态的线程解除阻塞后,它将回到哪个状态?

A. 运行中状态
B. 结束状态
C. 新建状态
D. 可运行状态

(5)可以通过继承哪个类来创建线程?

A. Thread
B. Runnable
C. tart
D. run 

(6)为了保证方法的线程安全,声明方法的时候必须用哪个修饰符?

A. new
B. transient
C. void
D. synchronized

(7)线程的默认优先级是哪项?

A. 0
B. 1
C. 5
D. 10

(8)现有

class Thread2 implements Runnable(
    void run(){
        System.out.print ("go¨);
    }
    public static void main(String  []  args){
        Thread2 t2=new Thread2();
        Thread t=new Thread(t2);
        t.start();
    }
}

结果为

A. go
B. 运行时异常被抛出
C. 代码运行,无输出结果
D. 编译失败

(9)程序员想要创建一个名为MyThread的类以便在main方法中用Thread实例化。对于下面三行

MyThread必须继承Thread。
MyThread必须实现Thread。
MyThread必须覆盖public void run()。
有几行是正确的

A. 0
B. 1
C. 2
D. 3

(10)现有

class ThreadBoth extends Threaa implements Runnable  {
    public void run()(System.out.print("hi");
    public static voicl main (String  []  args)  {
        Thread tl=new ThreadBoth():
        Thread t2 = new Thread (tl):
        tl.run():
        t2.run():
   }
}

结果为

A. hi hi
B. hi
C. 编译失败
D. 运行时异常被抛出

(11)现有:t是一个合法的Thread对象的引用,并且t的合法run()方法如下

public void run()  {
    System.out.print ("go");
}
//及
t.start();
t.start();
t.run();

哪一个是结果?

A. go go
B. go go go
C. go之后跟着一个异常
D.go go之后跟着一个异常 

(12)现有

class ThreadExcept implements Runnable  {
    public void run()  {  throw new RuntimeException("exception ");  }
    public static void main(Stri_ng  []  args)  {
        new  Thread (new  ThreadExcept()).start();
        try  {
            int x=Integer.parselnt (args [0]);
            Thread. sleep (x);
            System.out.print("main");
        } catch (Exception e)  {  }
    }
}

和命令行: java ThreadExcept l000 哪一个是结果?

A. main
B. 编译失败
C. main java.lang.RuntimeException: exception
D. 代码运行,但没有输出

(13)现有

class Order2 implements Runnable  {
    public void run()  {
        for (int x- o;  x<4;  x++)  {
            try{
                Thread.sleep(100);
            }catch(Exception e){}
            System.out.print("r");
        }
    }
    public static void main(string  []  args)  {
        Thread t=new Thread(new order2());
        t.start();
        for(int x=0;  x<4;  x++)  {
            //insert code here
            System.out.print("m");
        }  
    }
}

哪一个插入到第15行,最有可能产生输出 rmrmrmrm?

A. Thread.sleep(1);
B. Thread.sleep(100);
C. Thread.sleep(1000);
D. try{  Thread.sleep(1);) catch  (Exception e)  {  }
E. try{Thread.sleep(100);) catch  (Exception e)  {  }
F. try{Thread.sleep(1000);) catch  (Exception e)  {  )

(14)现有

class Waiting implements Runnable  {
    Boolean flag=false;
    public  synchronized void run()  {
        if  (flag)  {
            flag=false;
            System.out.print ("1");
            try  {  this.wait();  )  catch  (Exception e)  {  }
            System.out.print ("2");
        }
        else  {
            flag=true;
            System.out.print ("3");
            try{Thread.sleep (2000); } catch(Exception e)  {}
            System.out.print ("4");
            notify();
        }
    }
    public static void main (String  []  args)  {
        Waiting w=new Waiting();
        new Thread (w) .start();
        new Thread (w) .start();
    }
}

以下哪两项是止确的?(选两项)

A. 代码输出l 3 4
B. 代码输出3 4 1
C. 代码输出l 2 3 4
D. 代码输出1 3 4 2
E. 代码运行完毕
F. 代码不会完成 

(15)现有

class Order implements Runnable {
    public void run (){
        try { 
            Thread.sleep (2000);
        } catch (Exception e){
            System.out.print("in") ;
        }
    }
    public static void main (String [] args){
        Thread t = new Thread (new Order ());
        t.start () ;
        System.out.print ("pre ") ;
        try { 
            t.join ();
        } 
        catch (Exception e){
        
        }
        System.out.print ("post");
    }
}

可产生哪两项结果? (选两项)

A. pre in post
B. pre in
C. in post pre
D. in pre post
E. pre post in 

参考答案

1、ABD
2、A
3、C
4、D
5、A
6、D
7、C
8、D
9、A
10、A
11、C
12、C
13、E
14、BF
15、AD 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值