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

2019-10-08 09:27:47来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

  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


原文链接:https://www.cnblogs.com/xiaoyangjia/p/11633684.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:SpringBoot进阶教程(六十二)整合Kafka

下一篇:SpringBootSecurity学习(15)前后端分离版之 OAuth2.0简单示例