面试连环炮系列(十三):实现一个线程有几种方法

  1. 实现一个线程有几种方法?

    • 通过实现Runnable接口
    • 通过继承Thread接口
    • 通过Callable和Future创建线程
  2. Callable和Runnable接口有什么区别

    • Runnable没有返回值;Callable可以返回执行结果,是个泛型,和Future、FutureTask配合可以用来获取异步执行的结果。
    • Callable接口的call()方法允许抛出异常;Runnable的run()方法异常只能在内部消化,不能往上继续抛。
  3. Java线程的底层实现清楚吗
    Java线程是基于native方法实现的,与JVM无关,由平台所决定。

    • 内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操纵调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。每个内核线程可以视为内核的一个分身。
    • 用户线程指的是完全建立在用户空间的线程库上,系统内核不能感知线程存在的实现。用户线程的建立、同步、销毁和调度完全在用户态中完成,不需要内核的帮助。如果程序实现得当,这种线程不需要切换到内核态,因此操作可以是非常快速且低消耗的,并且可以支持规模更大的线程数量。

参考文章:

https://www.cnblogs.com/kaituorensheng/p/9502968.html
https://blog.csdn.net/u013568373/article/details/93474642
https://www.jianshu.com/p/e1edc437d184

posted @ 2019-10-08 09:36  编码专家  阅读(712)  评论(0编辑  收藏  举报