java经典面试题及答案,java面试刷题
一、反射机制的应用场景
(相关教程推荐:java面试题)
反向代码,如反编译
结合注释的框架,例如翻新
简单的反射机制应用程序框架,如EventBus 2.x
生成Gson等动态类框架。
二、什么是多线程?
多线程是指从软件或硬件上实现多个线程并发执行的技术。在一个程序中,这些独立运行的程序段称为“线程”,用它们编程的概念称为“多线程”。
具有多线程能力的计算机因为有硬件支持,可以同时执行多个线程,从而提高整体处理性能。
如何解决写爬虫IP受阻的问题?立即使用。
主线程是创建过程中生成的第一个线程,是主函数对应的线程。
(推荐学习:java入门)
三、说一下多线程的好处?
1.多线程的优势
创建一个新线程的成本远低于创建一个新进程的成本。
与进程之间的切换相比,线程之间的切换需要操作系统做更少的工作。
线程占用的资源比进程少得多。
充分利用并行处理器的数量。
在等待缓慢的IO操作结束后,程序可以执行其他计算任务。
为了在多处理器系统上运行,计算(CPU)密集型应用程序通过将计算分解为多个线程来实现。
IO密集型应用,为了提高性能,重叠IO操作,线程可以等待不同的IO操作。
2.多线程的缺点
性能损失(计算密集型线程很少被外部事件阻塞,并且不能与其他线程共享同一个处理器。当计算密集型线程数量超过可用处理器数量时,可能会造成巨大的性能损失。这里的性能损失是指额外的同步和调度开销,可用资源保持不变。)
健壮性下降(线程之间缺乏保护。在一个多线程程序中,时间分配上的细微差距或者一些不应该共享的变量的共享所带来的不良影响的可能影响是非常大的。)
缺少访问控制(因为进程是访问控制的基本粒度,在一个线程中调用一些OS函数会影响整个进程。)
编程更加困难(编写和调试多线程程序比单线程困难得多。)
四、线程和进程有什么区别?
1.行程安排
进程是操作系统分配资源的基本单位。线程是CPU调度的基本单位。
2.并发
引入线程后,不仅可以并发执行进程,还可以并发执行一个进程中的多个线程,甚至允许一个进程中的所有进程并发执行。
类似地,不同进程中的线程可以并发执行。使OS具有更好的并发性,提高资源利用率和系统吞吐量。
3.有资源
一个进程可以拥有资源,是系统拥有资源的基本单位。线程本身并不拥有系统资源,只是拥有一些能够保证独立运行的资源。该资源的每个线程都是私有的。
比如线程ID,一组寄存器,stack,errno,信号掩码(一个进程中只有一个挂起的信号,但是任何线程都可以处理这个信号),调度优先级。
4.独立性自立性
同一个进程中线程的独立性远低于不同进程中的。
5.系统开销
线程切换的开销低于进程切换的开销,
6.支持多处理器系统。
对于一个传统的进程,也就是单线程的进程,无论有多少个处理器,进程都只能在同一个处理器上运行,但是对于多线程的进程,可以将一个进程中的多个线程分配给多个处理器,让它们并发执行,从而加快进程的完成。
(视频教程推荐:java视频教程)
五、进程和线程的应用场景
有必要经常创建销毁优先级线程。
需要大量计算的优先级线程。
使用相关性强的线程,使用相关性弱的进程。
可以扩展到多机分布式使用进程,多核分布式使用线程。
这就是java经典面试问题的细节(四)。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。