单项选择(2010年3月二级考试)

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

A、sleep()方法的时间到

B、获得了对象的锁

C、线程在调用t.join()方法后,线程t结束

D、wait()方法结束

答案解析

D

【解析】

线程调用wait()方法时,线程由运行状态进入等待阻塞状态;

在等待阻塞状态下的线程若被notifyAll()和notionAll()唤醒、被interrupt()中断或者等待时间到,线程将进入对象锁阻塞状态,而不是直接进入可运行状态。

讨论

为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下划线处依次填入的语句是 【】。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()方法在____________类中定义。

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

Java中的线程模型由三部分组成,与线程模型组成无关的是【 】。

使新创建的线程参与运行调度的方法是 【 】。

Java程序的并发机制是 【】。

下列线程状态转换序列,在线程实际运行中可能出现的序列是【】。

下列程序创建了一个线程并运行,请在下划线处填入正确代码。 public class Try extends Thread{    public static void main(String args[]){       Thread t=new Try();       __________;    }    public void run(){          System.out.println(“Try!”);    } }

为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下划线处依次填入的语句是 【】。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()方法在____________类中定义。

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

Java中的线程模型由三部分组成,与线程模型组成无关的是【 】。

使新创建的线程参与运行调度的方法是 【 】。

Java程序的并发机制是 【】。

下列线程状态转换序列,在线程实际运行中可能出现的序列是【】。

下列程序创建了一个线程并运行,请在下划线处填入正确代码。 public class Try extends Thread{    public static void main(String args[]){       Thread t=new Try();       __________;    }    public void run(){          System.out.println(“Try!”);    } }

为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下划线处依次填入的语句是 【】。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()方法在____________类中定义。

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

Java中的线程模型由三部分组成,与线程模型组成无关的是【 】。

使新创建的线程参与运行调度的方法是 【 】。

Java程序的并发机制是 【】。

下列线程状态转换序列,在线程实际运行中可能出现的序列是【】。

下列程序创建了一个线程并运行,请在下划线处填入正确代码。 public class Try extends Thread{    public static void main(String args[]){       Thread t=new Try();       __________;    }    public void run(){          System.out.println(“Try!”);    } }