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

相关文章:

  • 2022-12-23
  • 2021-06-01
  • 2021-10-23
  • 2021-06-14
  • 2022-02-20
  • 2022-12-23
  • 2022-01-13
  • 2021-11-12
猜你喜欢
  • 2021-10-25
  • 2021-05-18
  • 2021-09-15
  • 2021-11-21
  • 2022-02-15
  • 2021-10-20
  • 2021-11-27
相关资源
相似解决方案