多项选择题(2016年腾讯公司校园招聘)

同步机制应该遵循哪些基本准则【 】

A、空闲让进

B、忙则等待

C、有限等待

D、让权等待

答案解析

ABCD

【解析】

· 空闲让进:当无进程处于临界区时,表明临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,以有效利用临界资源

· 忙则等待:当已有进程处于临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问

· 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态

· 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态

关键词

有限;访问;java;程序;设计;同步;机制;允许;

阅读下面实现堆栈类并发控制的部分代码 public class DateStack{     private int idx = 0;     private int[] data = new int [8];     public void push(int i){         ______________{             data[idx]=i;             idx++;         }     } }在程序下划线处填入正确选项是 【 】。

下列代码编译或执行结果的描述中,正确的是【 】class Test{    public static void main(String args[]){        TestThread pm1 = new TestThread("One");        pm1.start();        TestThread pm2 = new TestThread("Two");        pm2.start();    } } class TestThread extends Thread{     private String sTname="";     TestThread(String s){        sTname = s;     }     public void run(){        for(int i=0;i<2;i++){          try{            sleep(1000);          }catch(InterruptedException e){}          System.out.println(sTname+" ");        }     } }

线程由于调用sleep()方法进入阻塞状态,当睡眠结束时,该线程将进入__________状态。

Java中,线程必须属于一个进程,线程是程序运行中的__________。

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

为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下划线处依次填入的语句是 【】。public class IntStack{     private int idx=0;     private int[] data=new int[8];     public ______ void push(int i){         data[idx]=i;         idx++;         _____     }     ...... }

在程序的下划线处应填入的选项是【】。public class Test_____{     public static void main(String args[]){         Test t = new Test();         Thread tt = new Thread(t);         tt.start();     }     public void run(){         for(int i=0;i<5;i++){             system.out.println("i="+i);         }     } }

当使用SomeThread t=new SomeThread()创建一个线程时,下列叙述中正确的是【 】。

实现线程交互的wait()和notify()方法在____________类中定义。

如果线程调用下列方法,不能保证使该线程停止运行的是 【 】。