第1章 线程
1.1 线程基础
线程(Thread)是独立于其他线程运行的程序执行单元。在Java体系中,线程在多任务处理中起着举足轻重的作用。
1.1.1 线程概述
线程(轻量级程序)类似于一个程序,也有开始、执行和结束。它是运行在程序内部的一个比进程还要小的单元。使用线程的主要原因在于可以在一个程序中同时运行多个任务。每个Java程序都至少有一个线程——主线程。当一个Java程序启动时,JVM会创建主线程,并在该线程中调用程序的main()方法。
多线程就是同时有多个线程在执行。在多CPU的计算机中,多线程的实现是真正的物理上的同时执行,而对于单CPU的计算机而言,实现的只是逻辑上的同时执行。在每个时刻,真正执行的只有一个线程,由操作系统进行线程管理调度,但由于CPU的速度很快,让人感
到像是多个线程在同时执行。
进程是指一种“白包容”的运行程序,有自己的地址空间:线程是进程内部单一的一个顺序控制流。基于进程的特点是允许计算机同时运行两个或更多的程序。基于线程的多任务处理环境中,线程是*小的处理单位。多线程程序在更低的层次中引入多任务处理。多进程与多线程是多任务的两种类型。多线程与多进程的主要区别在于,线程是一个进程中一段独立的控制流,一个进程可以拥有若干个线程。在多进程设计中各个进程之间的数据块是相互独立的,一般彼此不影响,要通过信号���管道等进行交流。而在多线程设计中,各个线程不一定独立,同一任务中的各个线程共享程序段、数据段等资源。
多线程比多进程更方便于共享资源,而Java提供的同步机制解决了线程之间的数据完整性问题,使得多线程设计更易发挥作用。在Java程序设计中,动画设计及多媒体应用都会广泛地使用到多线程。
……