线程
在多任务操作系统中,每个运行的程序都是一个进程,用来执行不同的任务,而在一个进程中还可以有多个执行单元同时运行,来同时完成一个或多个程序任务,这些执行单元可以看做程序执行的一条条线索,被称为线程。操作系统中的每一个进程中都至少存在一个线程,当一个Java程序启动时,就会产生一个进程,该进程中会默认创建一个线程,在这个线程上会运行main()方法中的代码。
在前面章节所接触过的程序中,代码都是按照调用顺序依次往下执行,没有出现多段程序代码交替运行的效果,这样的程序称作单线程程序。如果希望程序中实现多段程序代码交替运行的效果,则需要创建多个线程,即多线程程序。多线程程序在运行时,每个线程之间都是独立的,它们可以并发执行。程序中的单线程和多线程的主要区别可以通过一张图示来简单说明,如图1所示。
图1 单线程与多线程
从图1可以看出,单线程就是一条顺序执行线索,而多线程则是并发执行的多条线索,这样就可以充分利用CUP资源,进一步提升程序执行效率。从表面上看,多线程看似是同时并发执行的,其实不然,它们和进程一样,也是由CPU控制并轮流执行的,只不过CPU运行速度非常快,故而给人同时执行的感觉。