万能百科  > 所属分类  > 

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 【说明】 下面的Java程序演示了程序竞

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。

【说明】

下面的Java程序演示了程序竞争资源(Mutex的实例对象)而引起程序死锁的一种例子。

【Java程序】

import java.applet.*;

import java.awt.*;

//此处声明一个互斥类

class Mutex { }

class A extends (1)

{

private Mutex first,second;

public A(Mutex f,Mutex s)

{

first = f;

second = s;

}

public void run()

{

//锁定first变量

(2) (first)

{

try

{ //本线程挂起,等待重新调度

Thread.sleep(1); //注意此处(1)不是小题序号

}

catch(InterruptedException e){}

System. out. println("threadA got first mutex");

(2) (second) //锁定second变量

{ //do something

System. out. println("threadA got second mutex");

} //释放second变量

} //释放first变量

}

}

class B extends (1)

{

private Mutex first,second;

public B(Mutex f,Mutex s)

{

(3) ;

second = s;

}

public void run()

{

(2) (second) //锁定second变量

{

//do something

try

{

Thread.sleep(((int)(3*Math.random()))*1000);

//本线程挂起,等待重新调度

}

catch(InterruptedException e){}

System.out.println("threadB got second mutex");

(2) (first) //锁定first变量

{

//do something

System.out.println("threadB got first mutex");

} //释放first变量

} //释放second变量

}

}

public class DeadlockExample

{

public static void main(String arg[])

{

Mutex mutexX = new Mutex();

Mutex mutexY = new Mutex();

AthreadA = new A(mutexX,mutexY);

B threadB = new B (4);

threadA.(5);

threadB.start();

}

}

正确答案:

(1)Thread(1)Thread 解析:从下面的程序不难看出,类A、B均是线程类,因此需要继承自类Thread。

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签