试题查看

首页 > 计算机二级考试 > 试题查看
【分析解答题】


阅读以下说明和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选项

你可能感兴趣的试题

下列线程状态转换序列,在线程实际运行中可能出现的序列是______。A.新建→运引入多道程序的目的在于()。A.充分利用CPU,减少CPU等待时间B.提高实时响现行PC机中普遍采用的ISA总线(AT总线),其I/O插槽能够支持的存储器地址线计算机是一种通用的信息处理工具,下面是关于计算机信息处理能力的叙述:①它不但能处TABDW1,2,3,4,5,6ENTRYEQU3MOVBX,OFFSETTAB某静态RAM芯片容量为8K×8位,如用它组成32K×8位的存储器,所用芯片数及这