16.1.2 多线程的优势
线程在程序中是独立的、并发的执行流,与分隔的进程相比,进程中线程之间的隔离程度要小。它们共享内存、文件句柄和其他每个进程应有的状态。
因为线程的划分尺度小于进程,使得多线程程序的并发性高。进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程比进程具有更高的性能,这是由于同一个进程中的线程都有共性—一多个线程共享同一个进程虚拟空间。线程共享的环境包括:进程代码段
、进程的公有数据
等。利用这些共享的数据,线程很容易实现相互之间的通信。
当操作系统创建一个进程时,必须为该进程分配独立的内存空间,并分配大量的相关资源;但创建一个线程则简单得多,因此使用多线程来实现并发比使用多进程实现并发的性能要高得多。
多线程编程优点
总结起来,使用多线程编程具有如下几个优点。
- 进程之间不能共享内存,但线程之间共享内存非常容易
- 系统创建进程时需要为该进程重新分配系统资源,但创建线程则代价小得多,因此使用多线程来实现多任务并发比多进程的效率高
Java
语言内置了多线程功能支持,而不是单纯地作为底层操作系统的调度方式,从而简化了Java
的多线程编程。
在实际应用中,多线程是非常有用的,一个浏览器必须能同时下载多个图片;一个Web
服务器必须能同时响应多个用户请求;Java
虚拟机本身就在后台提供了一个超级线程来进行垃圾回收;图形用户界面(GUI)
应用也需要启动单独的线程从主机环境收集用户界面事件……总之,多线程在实际编程中的应用是非常广泛的。
原文链接: 16.1.2 多线程的优势