12.1.2 线程

更新于 2026年10月10日 版权声明
12.1.2 线程

线程是运行在程序内部的一个比进程还要小的单元,它允许一个进程中同时运行多个执行单元,如360安全卫士在运行的时候在系统中产生一个进程,而360安全卫士这个软件中很多其他的功能,如木马查杀、电脑清理、优化加速等(见图12.2),这些程序可以同时执行,即在一个进程中同时执行多个任务,这就是线程的作用。

图示

图12.1 Windows操作系统中的进程

图示

图12.2 360安全卫士中的线程

说明:

每个进程中都至少存在一个线程。

在Java中,当启动Java程序的时候,会产生一个进程,而这个进程会默认创建一个线程来运行main()方法中的代码。如果程序中的代码始终依次从上往下顺序执行,没有出现两段或者更多的程序代码交错执行,这样的程序被称为单线程程序,反之,称为多线程程序。

采用多线程的程序具有以下优点:

(1)能够在一个进程中同时运行多个任务或多段代码。(https://www.daowen.com)

(2)能够提高资源的利用率。

提示:

多线程程序能够同时执行多个任务,但本质上与多任务系统的进程类似,也是由CPU轮流执行的。因此,多线程只能提高资源的利用率,而不能提高执行的效率。

虽然多线程能提高资源的利用率,但并不是线程越多越好,多线程也存在以下缺点:

(1)进程中的线程越多,每个线程被执行的频率将会降低。

(2)线程越多,CPU的开销越大。

(3)由于CPU是轮流执行所有线程,因此程序在上下文切换的时候会带来额外负担;

(4)当有多个线程同时对公有变量进行读写时,可能会引发线程安全问题。

(5)多个线程之间可能形成长时间等待、资源竞争以及死锁等问题。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)