为什么会产生线程,线程的产生主要是解决什么问题?
(1)使用多线程可以减少程序的响应时间。
(2)与进程相比,线程的创建和切换开销更小。建立许多数据结构来维护线程代码段、数据段等信息,而运行于同一个进程内的线程共享同一个代码段、数据段,线程的启动或切换的开销就比进程要少到很多。
(3)多CPU和多核心计算机本身就具有执行多线程的能力,如果使用单个线程,将无法复制利用计算机资源,造成资源的巨大浪费。
(4)使用多线程能简化程序的结构,使程序便于理解和维护。
多线程的坏处:
多线程的并发执行,引入多线程之后,系统的执行路径变成了多条,并且这条执行路径在并发执行。那么首先程序的执行具有不确定性,每次执行的结果可能都会不同,因为程序的交替执行的顺序和时机不同了。其次,使得某些资源的访问出现的竞争,问题变得困难,需要资源进行同步,这会使得程序的可靠性和稳定性降低。