很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。
0.Java 中多线程同步是什么?
在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果。
1.解释实现多线程的几种方法?
一 Java 线程可以实现 Runnable 接口或者继承 Thread 类来实现,当你打算多重继承时,优先选择实现 Runnable。
2.Thread.start ()与 Thread.run ()有什么区别?
Thread.start ()方法(native)启动线程,使之进入就绪状态,当 cpu 分配时间该线程时,由 JVM 调度执行 run ()方法。欢迎学习java的,并且为之疯狂的童鞋加入:IT狂Java开发学习交流  群号:107013212
我们可以一起学习、研究Java技术。

解决方案 »

  1.   

    jdk 1.5增加了个Callable接口,实现多线程,有返回值
      

  2.   

    第二题能不能这样理解:start()方法调用以后就开辟一个新线程执行,不管这个新线程中run()方法是否执行完,主线程都继续执行下去;如果是thread.run()就相当于调用thread类中的run()方法,这个时候主线程必须等到run()方法执行完毕才能往下执行?
      

  3.   

    第二题能不能这样理解:start()方法调用以后就开辟一个新线程执行,不管这个新线程中run()方法是否执行完,主线程都继续执行下去;如果是thread.run()就相当于调用thread类中的run()方法,这个时候主线程必须等到run()方法执行完毕才能往下执行?