面试连环炮系列(十三):实现一个线程有几种方法
-
实现一个线程有几种方法?
- 通过实现Runnable接口
- 通过继承Thread接口
- 通过Callable和Future创建线程
-
Callable和Runnable接口有什么区别
- Runnable没有返回值;Callable可以返回执行结果,是个泛型,和Future、FutureTask配合可以用来获取异步执行的结果。
- Callable接口的call()方法允许抛出异常;Runnable的run()方法异常只能在内部消化,不能往上继续抛。
-
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
博客作者:编码专家
公 众 号:编码专家
独立博客:codingbrick.com
文章出处:https://www.cnblogs.com/xiaoyangjia/p/11633684.html
本文版权归作者所有,任何人或团体、机构全部转载或者部分转载、摘录,请在文章明显位置注明作者和原文链接。
公 众 号:编码专家
独立博客:codingbrick.com
文章出处:https://www.cnblogs.com/xiaoyangjia/p/11633684.html
本文版权归作者所有,任何人或团体、机构全部转载或者部分转载、摘录,请在文章明显位置注明作者和原文链接。