【分析解答题】
阅读以下说明和jAvA代码,将应填入(n)处的字句写在对应栏内。
【说明】
下面的jAvA程序演示了程序竞争资源(mutEx的实例对象)而引起程序死锁的一种例子。
【jAvA程序】
import jAvA、ApplEt.*;
import jAvA、Awt.*;
//此处声明一个互斥类
ClAss mutEx { }
ClAssA、ExtEnDs {{u}} (1) {{/u}}
{
privAtE mutEx First,sEConD;
puBliCA(mutEx F,mutEx s)
{
First = F;
sEConD = s;
}
puBliC voiD run()
{
//锁定First变量
{{u}} (2) {{/u}} (First)
{
try
{//本线程挂起,等待重新调度
thrEAD、slEEp(1);//注意此处(1)不是小题序号
}
CAtCh(intErruptEDExCEption E){}
systEm. out. println("thrEADA、got First mutEx");
{{u}} (2) {{/u}} (sEConD)//锁定sEConD变量
{//Do somEthing
systEm. out. println("thrEADA、got sEConD mutEx");
}//释放sEConD变量
}//释放First变量
}
}
ClAssB、ExtEnDs{{u}} (1) {{/u}}
{
privAtE mutEx First,sEConD;
puBliCB(mutEx F,mutEx s)
{
{{u}} (3) {{/u}};
sEConD = s;
}
puBliC voiD run()
{
{{u}} (2) {{/u}} (sEConD) //锁定sEConD变量
{
//Do somEthing
try
{
thrEAD、slEEp(((int)(3*mAth.rAnDom()))*1000);
//本线程挂起,等待重新调度
}
CAtCh(intErruptEDExCEption E){}
systEm.out.println("thrEADB、got sEConD mutEx");
{{u}} (2) {{/u}} (First)//锁定First变量
{
//Do somEthing
systEm.out.println("thrEADB、got First mutEx");
}//释放First变量
}//释放sEConD变量
}
}
puBliC ClAssDEADloCkExAmplE
{
puBliC stAtiC voiD mAin(string Arg[])
{
mutEx mutExx = nEw mutEx();
mutEx mutExy = nEw mutEx();
AthrEADA、= nEwA(mutExx,mutExy);
B、thrEADB、= nEwB{{u}} (4) {{/u}};
thrEADA.{{u}} (5) {{/u}};
thrEADB.stArt();
}
}
查看答案解析
参考答案:
正在加载...
答案解析
正在加载...
根据网考网移动考试中心的统计,该试题:
0%的考友选择了A选项
0%的考友选择了B选项
0%的考友选择了C选项
0%的考友选择了D选项