JAVA并发编程培训测试题

感谢您能抽出几分钟时间来参加本次答题,现在我们就马上开始吧!
姓名
    ____________
所属团队
    ____________
以下表述按并发、并行、串行的排序,正确的是: 
T1:你吃饭吃到一半,电话来了,停下来接了电话,接完电话继续吃饭;
T2:你吃饭吃到一半,电话来了,一直到吃完后再去接听;
T3:你吃饭吃到一半,电话来了,一边打电话一边吃饭;
A: T1、T2、T3
B: T1、T3、T2
C: T2、T3、T1
D: T3、T1、T2
E: T2、T1、T3
F: 都不正确
同时访问synchronized的静态和非静态方法,能保证线程安全吗 ?(    )为什么?(         )
    ____________
Java中启动线程的方式有几种?(      )是哪几种?(         )
    ____________
以下关于java线程表述正确的是
A、start( )方法是native方法;
B、start( )方法负责启动线程;
C、run( )方法是native方法;
D、run( )方法负责启动线程;
以下关于守护线程描述正确的是
A、Finalizer是守护线程;
B、守护线程会占用更少的资源;
C、所有非守护线程结束后,JVM会退出;
D、负责GC的线程是守护线程;
以下对于线程优先级描述正确的是
A、java对线程优先级定义是1~10,数字越大优先级越高;
B、优先级高的线程一定会占用更多CPU资源;
对于以下程序代码:
public class ExamSyn1 implements Runnable {
        int a = 0;

        synchronized void m1(   ) throws InterruptedException {
                 a = 1000;
                 Thread.sleep(500);
                 System.out.println("a=" + a);
}

synchronized void m2(   ) throws InterruptedException {
        Thread.sleep(250);
        a = 2000;
}

public static void main(String[   ] args) throws InterruptedException {

        ExamSyn1 tt = new ExamSyn1(   );
        Thread t = new Thread(tt);
        t.start(   );

        tt.m2(   );
        System.out.println("main a=" + tt.a);

        Thread.sleep(2000);

 }

 @Override
 public void run(   ) {
         try {
                 m1(   );
         } catch (InterruptedException e) {
                 e.printStackTrace(   );

         }

    }

}

对于以下输出结果,正确的是(   )
main a= 结果1
a= 结果2  
A、结果1:2000
B、结果1:1000
C、结果1:1000或2000
D、结果2:2000
E、结果2:1000
F、结果2:1000或2000

9题 | 被引用0次

模板修改
使用此模板创建