niusouti.com
参考答案和解析
正确答案: 新建状态
解析:
调用一个线程类的构造方法,便创建了一个线程Thread myThread= new MyThreadClass();新建状态的线程还没有分配有关的系统资源,此时线程只能使用start()和stop()两种控制方法。
更多“填空题语句Thread thread1=new SomeThreadClass()成功运行后,线程thread1处于生命周期的____状态。”相关问题
  • 第1题:

    请完成下列Java程序:运行3个线程,每一个线程有自己的标志,用a,b,c表示,每个线程显示一个“Start”信息和一个“End”信息并且间隔地显示2个“Loop”信息(间隔变化为(0.5-2)秒之间的随机延迟)。

    程序运行结果如下:(注:由于时间间隔为随机数,所以,运行结果的顺序不惟一)

    a Start

    b Start

    c Start

    b Loop

    a Loop

    b Loop

    b End

    c Loop

    a Loop

    a End

    c Loop

    c End

    注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。

    public class ex2_2 implements Runnable {

    static char flag2_2 = 'a';

    public static void main(String[] arg) {

    ex2_2 obj2_2 = new ex2_2();

    Thread thread2_2 = new Thread(obi2_2);

    thread2_2.start();

    thread2_2 = new Thread(obj2_2);

    thread2 2.start();

    thread2_2 = new Thread(obi2_2);

    thread2_2, start ( );

    }

    public void run() {

    char myflag2_2;

    synchronized(this) {

    _________________;

    }

    System.out.println(myflag2_2 +" Start");

    for(int i=0; i<2; i++) {

    try {

    Thread.sleep(rand(500,2000));

    System.out.println(myflag2_2 +" Loop");

    } catch(InterruptedException ie) {

    System.out.println(ie);

    }

    }

    System.out.println(myflag2_2 +" End");

    }

    final private int rand(int low, int high)

    return(_________________);

    }

    }


    正确答案:myflag2_2 = flag2_2++ ((int)((high-low+1)*(Math.random())))+low
    myflag2_2 = flag2_2++ ((int)((high-low+1)*(Math.random())))+low 解析:本题主要考查线程的创建与同步和控制随机数产生范围的算法。解题关键是,熟悉线程的概念和使用,线程的同步控制, char类型数据的操作,以及熟悉随机数产生的方法Math.random(),并且能够进一步根据需要控制随机数产生的范围。在本题中,main()方法中创建3个线程,这3个线程使用obj2_2对象。线程调用start()方法来中断,使一个新的线程开始执行,并且调用run()方法。第1空,run()方法为自己设置一个线程的标志,并为下一个线程的使用增加这个标志值,由于此时线程正在处理中,因此在同步块中完成修改标志的语句放在同步块中。第2个空,通过low和high两个参数,控制产生随机数的范围,将基本的数学思想应用于程序设计中。

  • 第2题:

    通过实现Runnable接口创建线程,请在下面横线处填入代码完成此程序。

    注意:不改动程序结构,不得增行或删行。

    class ThreadTest implements Runnable

    {

    Thread thrObj;

    public static void main(String args[])

    {

    System.out.println("这是一个通过实现接口创建线程的例子");

    ThreadTest testObj=new ThreadTest();

    testObj.create();

    }

    public void create()

    {

    if(thrObj= =null)

    {

    thrObj=new Thread(this,"myThread");

    ______

    }

    }

    public void run()

    {

    System.out.println("Thread"+throbj.getName()+":"+"在运行!");

    }

    }


    正确答案:thrObj.start();
    thrObj.start(); 解析:本题考查考生对如何通过实现Runnable接口创建线程及使用线程的掌握,这是一道简单应用题。程序中,ThreadTest类实现了Runnable接口,所以ThreadTest类必须重写Runnable接口中的run()方法。在create()方法创建了一个名为thrObj的线程,并调用Thread类中的start()方法启动该线程。语句thrObj=new Thread(this,"myThread");中,this是Thread构造方法的第一个参数,作为该线程的目标对象,它必须实现Runnable接口。第二个参数 myTread为线程的名称。在这种构造方法下,线程thrObj就以目标对象中的run()方法作为自己的run()方法,本例中,目标对象就是ThreadTest类的对象。

  • 第3题:

    请完成下列Java程序:运行3个线程有自己的标志,用a,b,c表示,每个线程显示一个“Start”信息和一个“End”信息并且间隔地显示2个“Loop”信息(间隔变化为0.5~2秒之间的随机延迟)。

    程序运行结果如下(注:由于事件间隔为随机数,所以,运行结果的顺序不唯一):

    a Start

    b Start

    c Start

    b Loop

    a Loop

    b Loop

    b End

    c Loop

    a Loop

    a End

    c Loop

    c End

    注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。

    public class ex5_2 implements Runnable

    {

    static char flag5_2='a';

    public static void main(String[] args)

    {

    ex5_2 obj5_2=new ex5_2();

    Thread thread5_2=new Thread(obj5_2);

    Thread5_2.start();

    thread5_2=new Thread(obj2_2);

    thread5_2.start();

    threa'd5_2=new Thread(obj2_2);

    thread5_2.start();

    }

    public void run()

    {

    char myflag5_2;

    synchronized(this)

    {

    ______;

    }

    System.out.println(myflag5_2+"Start");

    for(int i=0;i<2;i++)

    {

    try

    {

    Thread.sleep(rand(500,2000));

    System.out.println(myflag5_2+"Loop");

    }catch(InterruptedException ie)

    {

    System.out.println(ie);

    }

    }

    System.out.println(myflag5_2+"End");

    }

    final private iht rand(int low,int high)

    {

    return(______);

    }

    }


    正确答案:myflag5_2=flag5_2++ ((int)((high-low+1)*(Math.random())))+low
    myflag5_2=flag5_2++ ((int)((high-low+1)*(Math.random())))+low 解析:本题主要考查线程的创建与同步和控制随机数产生范围的算法。解题关键是,熟悉线程的概念和使用、线程的同步控制、char类型数据的操作,以及熟悉随机数产生的方法 Math.random(),并且能够进一步根据需要控制随机数产生的范围。在本题中,main()方法中创建3个线程,这3个线程使用。obj5_2对象。线程调用start()方法来中断,使一个新的线程开始执行,并且调用run()方法。第1个空,run()方法为自己设置一个线程的标志,并为下一个线程的使用增加这个标志值,由于此时线程正在处理中,因此在同步块中完成修改标志的语句放在同步块中。第2个空,通过low和high两个参数,控制产生随机数的范围,将基本的数学思想应用于程序设计中。

  • 第4题:

    下列程序的运行结果是______。 Class C14 implements Runnable { private int i; public C14(int n) { this.i = n; } public void run{) { try { Thread.currentThread().sleep(i); } catch(InterruptedException ie) { System.err.println(ie.tString()); } System.out.println("线程" + Thread.currentThread() .getName + "睡眠了" + i + "毫秒结束"); } } public class Testl4 { public static void main(String[] args) { Thread t = new Thread(new C14(300), "t"); t.start(); } }

    A.线程t睡眠了300毫秒结束

    B.线程Thread-0睡眠了300毫秒结束

    C.线程t睡眠了i毫秒结束

    D.线程Thread-0睡眠了i毫秒结束


    正确答案:A
    解析:由于类C14实现了Runnable接口,没有继承类Thread,因此需要调用 Thread.currentThread()方法来返回当前线程的引用。在main()方法中,调用了类C14构造方法,其参数就是线程睡眠的时间300毫秒,而Thread类构造方法的另一个参数就是线程的名称t。

  • 第5题:

    如果使用Thread t=new Test()语句创建一个线程,则下列叙述正确的是

    A.Test类一定要实现Runnable接口

    B.Test类一定是Thread类的子类

    C.Test类一定是Runnable的子类

    D.Test类一定是继承Thread类并且实现Runnable接口


    正确答案:B
    解析:本题考查线程的使用。Java中可以通过实现Runnable接口来创建线程。通过这种方式创建线程是把Runnable的一个对象作为参数传递给Thread类的一个构造方法,该对象提供线程体run()。如果题目中Test实现Runnable接口,则创建线程的方法是Thread t=new Thread(new Test())。Java中另一种创建线程的方法是通过继承 Thread类,重写其中的run()方法定义线程体,然后直接创建该子类的对象即可创建线程。题目中使用Thread t=new Test()语句创建线程,其中直接创建Test类对象,可知该类一定是继承Thread类。因此,本题的正确答案是选项B。

  • 第6题:

    对于下面语句,不正确的说法是______。 Thread thrObj=new Thread( );

    A.系统没有为此线程对象分配资源

    B.只能启动或者终止

    C.创建了一个空的线程对象

    D.可以调用其他方法


    正确答案:D
    解析: 通过new命令创建一个线程对象后,此线程对象就处于创建状态,题目中的语句只是创建了一个空的线程对象,选项C说法正确。但此时系统并没有为此线程对象分配资源,处于这种状态的数据,只能启动或者终止,也不能调用其他方法,如果调用其他方法就会失败并引起非法状态处理。

  • 第7题:

    线程在生命周期中要经历五种状态,在不使用stop()方法的情况下,线程当前处于终止状态,则它的上一个状态是( )。

    A.新建状态

    B.阻塞状态

    C.可运行状态

    D.运行状态


    正确答案:D
    解析:线程的生命周期过程为:(1)线程被创建后,并不马上启动,而是进入新建状态。此时线程没有分配资源,只能使用start()和stop()两个控制方法;(2)新建状态的线程在调用start()方法后,进入可运行状态。此时线程已经分配了必要资源,交给了系统调度。一旦线程实际占有了CPU,就进入了运行状态。(3)运行状态的线程如果调用了yield()方法、sleep()方法、join()方法或wait()方法,或者申请对象锁未果、有更高优先级线程进入调度等,都可进入阻塞状态。阻塞状态的线程在获取到足够的资源后,也可以转入到可运行状态。(4)当运行状态的线程正常执行完毕后,就进入了终止状态。

  • 第8题:

    对于线程的生命周期,下面四种说法正确的有哪些?()

    • A、调用了线程的start()方法,该线程就进入运行状态 (就绪,还要获得CPU使用权)
    • B、线程的run()方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态 
    • C、线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它
    • D、线程进入死亡状态后,调用它的start()方法仍然可以重新启动

    正确答案:B,C

  • 第9题:

    Thread.sleep()方法调用后,当等待时间未到,该线程所处状态为()

    • A、阻塞状态
    • B、运行状态
    • C、就绪状态
    • D、新建状态

    正确答案:A

  • 第10题:

    填空题
    CPU调度其它线程时,当前线程处于()状态,其它线程处于()状态。

    正确答案: 就绪,运行
    解析: 暂无解析

  • 第11题:

    填空题
    在多线程程序设计中,如果采用继承Thread类的方式创建线程,则需要重写Thread类的____方法。

    正确答案: run
    解析:
    java.lang中的Thread类是多线程程序设计的基础。Java中的线程体是由线程类的run()方法定义,该方法定义线程的具体行为。可以有两种方式提供run()方法的实现:实现Runnable接口和继承Thread类。如果采用继承Thread类的方式创建线程,则需要重写Thread类的run()方法。

  • 第12题:

    单选题
    Thread.sleep()方法调用后,当等待时间已到,该线程所处状态为()
    A

    阻塞状态

    B

    运行状态

    C

    就绪状态

    D

    新建状态


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

  • 第13题:

    对于下面语句的说法,不正确的是( )。Thread thrObj=new Thread( );

    A.系统没有为该线程对象分配资源

    B.只能启动或者终止

    C.创建了-个空的线程对象

    D.可以调用其他方法


    正确答案:D
    本题考查线程的创建。通过new命令创建-个线程对象后,该线程对象就处于创建状态,上面的语句只是创建了-个空的线程对象,选项c说法正确。此时,系统并没有为该线程对象分配资源,选项A说法正确。处于这种状态的线程,只能启动或者终止,选项B说法正确。该线程此时并不能调用其他方法,如果调用其他方法就会失败并引起非法状态处理,选项D说法错误。

  • 第14题:

    对于下面语句的说法,不正确的是 Thread thrObj=new Thread();

    A.系统没有为该线程对象分配资源

    B.只能启动或者终止

    C.创建了一个空的线程对象

    D.可以调用其他方法


    正确答案:D
    解析:本题考查线程的创建。通过new命令创建一个线程对象后,该线程对象就处于创建状态,上面的语句只是创建了一个空的线程对象,选项C说法正确。此时,系统并没有为该线程对象分配资源,选项A说法正确。处于这种状态的线程,只能启动或者终止,选项B说法正确。该线程此时并不能调用其他方法,如果调用其他方法就会失败并引起非法状态处理,选项D说法错误,故应选。

  • 第15题:

    下列程序的运行结果是______。 class A implements Runnable { int a; iht i = 2; A(int x) { a = x; } public void run() { while(i > 0) { System.out.println("线程" + a); i--; } } } public class Testl3 { public static void main(String[] args) { Thread a1 = new Thread(new A(1)); Thread a2 = new Thread(new A(2)); a1.start(); a2.start(); } }

    A.线程1 线程1 线程2 线程2

    B.线程1 线程2

    C.线程1 线程2 线程1 线程2

    D.线程1 线程1 线程1 线程1


    正确答案:A
    解析:类A实现了Runnable接口,并且通过类的构造函数A(int x)传递整型参数给对象作为线程的编号。在run()线程体内,实现打印两个字符串。在main()方法中,用A类的2个对象创建了a1和a2两个线程,当a1和a2开始执行时,从A类的run()方法开始执行。

  • 第16题:

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

    A.线程一旦创建,则立即自动运行

    B.线程创建后需要调用start()方法,将线程置于可运行状态

    C.线程处于可运行状态,意味着它可以被调度

    D.调用线程的start()方法后,线程也不一定能立即执行


    正确答案:A

  • 第17题:

    如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是( )。 A.sleep方法的时间到S

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

    A.sleep方法的时间到

    B.获得了对象的锁

    C.线程在调用t.join方法后,线程t结束

    D.wait方法结束


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

  • 第18题:

    当一个线程处于new状态时,通过什么方法使其进入runnable状态?


    正确答案:
     

  • 第19题:

    下列程序通过实现Runnable接口创建一个线程,选择正确的语句填入程序的横线处。 class MyRun implements Runnable { String str; MyRun(String s) { str = s; } public void run() System.out.println(str); } } public class ex40 { public static void main(String[] args) { String name = "实现阶段Runnable 接口"; MyRun my = new MyRun(name); Thread th = th. start ( ); } }

    A.new MyRun(my)

    B.new Thread()

    C.new Thread(my)

    D.Thread(my)


    正确答案:C

  • 第20题:

    线程在生命周期中要经历5种状态,分别是创建状态、就绪状态、运行状态、堵塞状态、()状态。


    正确答案:销毁

  • 第21题:

    您的应用程序运用了两个线程,名分别为thread One和thread Two thread Two..您需要修改代码防止从线程thread One的执行到thread Two的执行完成。您将如何去做?()

    • A、将thread One配置为以较低优先级运行。
    • B、将thread Two配置为以较高优先级运行。
    • C、使用Wait Call back委托同步这两个线程。
    • D、调用thread One的Sleep方法。
    • E、调用thread One的SpinLock方法。

    正确答案:C

  • 第22题:

    填空题
    线程在生命周期中要经历5种状态,分别是创建状态、就绪状态、运行状态、堵塞状态、()状态。

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

  • 第23题:

    多选题
    对于线程的生命周期,下面四种说法正确的有哪些?()
    A

    调用了线程的start()方法,该线程就进入运行状态 (就绪,还要获得CPU使用权)

    B

    线程的run()方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态

    C

    线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它

    D

    线程进入死亡状态后,调用它的start()方法仍然可以重新启动


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