Java语言程序设计

填空题语句Thread thread1=new SomeThreadClass()成功运行后,线程thread1处于生命周期的____状态。

题目
填空题
语句Thread thread1=new SomeThreadClass()成功运行后,线程thread1处于生命周期的____状态。
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

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

C)Test 类一定是 Runnable 的子类

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


正确答案:D

第2题:

请阅读下面程序 public class ThreadTest{ public static void main(String args[]) ( Thread t1=new Thread(new Hello()); Thread t2=new Thread(new Hello()); t1.start(); t2.start(); } } class Hello implements Runnable { int i; public void run() { while(true) { System.out.prinfin("Hello"+i++); if(i=5) break; } } } 该程序创建线程使用的方法是

A.继承Thread类

B.实现Runnable接口

C.t1.start()

D.t2.start()


正确答案:B
解析:本题考查线程的创建。Java中,线程的创建有两种方法:
  (1)通过实现Runnable接口创建线程。Runnable接口中只定义了一个run()方法作为线程体。
  (2)通过继承Thread类创建线程。Thread类本身实现了Runnable接口。
  无论使用哪种方法来创建线程,新建的线程不会自动运行,必须调用线程的start()方法,才能运行该线程。
  本题程序中的Hello类实现了Runnable接口,即采用的是第一种方法创建线程。因此,本题的正确答案是选项B。

第3题:

( 24 )请阅读下面程序

public class ThreadTest {

public static void main ( String args[ ]){

Thread t1 = new Thread ( new Hello ()):

Thread t2 = new Thread ( new Hello ()):

t l .start ():

t2.start ();

class Hello implements Runnable {

int i ;

public void run (){

while ( true ) {

System.out.println ( "Hello"+i++ ) ;

if ( i=5 ) break :

}

该程序创建线程使用的方法是()

A )继承 Thread 类

B )实现 Runnable 接口

C ) t l.start ()

D ) t2.start ()


正确答案:B

第4题:

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

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

B.只能启动或者终止

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

D.可以调用其他方法


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

第5题:

请完成下列Java程序:程序的功能演示了如何通过实现Runnable接口创建线程对象,程序中定义了一个类B,类中重写了含一个字符串参数的构造方法,并实现了Runnable接口,即在类B中编写了接口中的run()方法的方法体。还定义了一个应用程序类ex35_2,其中创建类B的3个对象b1,b2和b3作为线程对象t1,t2和t3的参数,并启动这3个线程。

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

程序运行结果如下:

public class ex35_2

{

public static void main(String args[ ])

{

Runnable b1=new B("First");

Runnable b2=new B("Second");

Runnable b3=new B("Third");

Thread t1=new Thread(b1);

Thread t2=new Thread(b2);

Thread t3=new Thread(b3);

t1.start ();

t2.start ();

t3.start();

}

}

class B _____________________ Runnable

{

String s;

public B(String str)

{

s=str;

}

_________________

{

for(int i=1;i<3;i++)

{

System. out. println ( s+ "运行!");

try

{

Thread.sleep((int) (Math.random() *100) );

}

catch (InterruptedException e)

{

e.printStackTrace ( );

}

}

System. out.println (s+"结束!");

}

}


正确答案:implements public void run()
implements public void run() 解析:本题主要考查Java中有关线程的基本操作。解题关键是要熟练掌握有关线程的基本知识。在Java中创建线程有两种基本方法:(1)是通过实现Runnable接口创建线程。(2)通过继承Thread类创建线程。第1个空,应该填implements关键字,其功能是实现Runnable接口。第2个空,应该填public void run(),其功能是重写run()方法。

第6题:

语句Thread thread1=new SomeThreadClass()成功运行后,线程thread1处于生命周期的______状态。


正确答案:新建状态
新建状态

第7题:

请完成下列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两个参数,控制产生随机数的范围,将基本的数学思想应用于程序设计中。

第8题:

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

public class ThreadTest

{

public static void main(String args [])

{

Thread testObj1 = new Thread (new Hello ());

Thread testObj2 = new Thread (new Hello ());

testObj 2.start ( );

}

}

class Hello implements Runnable

{

int j;

public void run()

{

System.out.println("Hello" + j ++);

}

}


正确答案:testObj 1.start();
testObj 1.start();

第9题:

Thread类中能运行线程的方法是( )。A.resume( )B.start( )C.run( )SXB

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

A.resume( )

B.start( )

C.run( )

D.init( )


正确答案:C
resume()是Thread类提供的用于线程控制的方法;start()是Thread类中的方法,新建的线程不会自动运行,必须调用线程的start()方法才能运行该线程;run()是Thread类中的方法,在该方法中定义了线程的具体行为,线程开始执行时,就是从它的run()方法开始执行的,就像Java应用程序从main()开始、Applet从init()开始-样;init()不是Thread类中的方法。

第10题:

通过实现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类的对象。

更多相关问题