,学习java中线程的使用;、线程的调度和控制方法;,以及多线程的应用,能够熟练编写关于线程、,微型计算机上的操作系统也纷纷采用多任务和分时设计,将早期只有大型计算机才具有的系统特性带到了微型计算机系统中。一般可以在同一时间内执行多个程序的操作系统都有进程的概念,进程就是在计算机中正在执行的程序(即处于活动状态的程序),每一个进程都有自己独立的一块内存空间和一组系统资源,比如在Windows、Linux等操作系统中可以同时执行多个程序,这里的每一个运行的程序都是一个进程,这些程序使用的内存空间和系统资源都是独立的,并且每个程序也是为了各自的任务而运行,互不干扰。进程概念的引入是操作系统发展史上的一个里程碑,正是进程技术的引入才使得计算机操作系统同时处理多个任务成为可能,这也促使了像Windows一样的多任务操作系统的出现,使计算机的运行效率在很大程度上得到了提升。在进程的基础上,线程概念后来又被提出,它使得在一个进程中同时处理多个任务成为可能。线程和进程有很多相似的特征,线程可以被看作是进程的进一步细分,也就是把进程完成的任务划分成一个个更小的子任务,每一个子任务就是一个线程,然后用细分的这些线程分别去执行。线程是基于进程的一个基本运行单位,线程同样包括一个内存入口点地址、一个出口点地址以及能够顺序执行的代码序列。但是线程与进程的重要区别在于线程不能够单独执行,它必须运行在处于活动状态的进程中,线程本身的数据通常只有微处理器的寄存器数据以及一个供程序执行时使用的堆栈,因此可以定义线程是程序内部的顺序代码流,也就是说线程是在进程作用域内活动的一系列指令流,所以线程也被称为轻型进程(LightWeightProcess,LWP)。多线程多线程是这样一种机制,它允许在程序中“并行”执行多个指令流,每个指令流被称作一个线程,彼此间的执行互相独立。多线程需要操作系统的支持,WIN32平台支持多线程程序,允许程序中存在多个线程。在单CPU计算机系统中,系统把CPU的时间片按照调度算法分配给各个线程,因此各线程实际上是分时执行的,而在多CPU的计算机系统中,同一个程序的不同线程可以分配到不同的CPU上去执行。多个线程的执行是并发的,也就是在逻辑上“同时”,而不是物理上的“同时”。如果系统只有一个CPU,那么真正的“同时”是不可能的,但是由于CPU的速度非常快,用户感觉不到其中的区别,因此我们也不用关心它,只需要设想各个线程是同时执行即可。由于多线程中各个线程的控制流彼此独立,所以多线程和传统的单线程在程序设计上最大的区别是,各个线程之间的代码是乱序执行的,。其中图(a)是一个单线程程序,该程序将从上向下顺序执行;而图(b)是一个两线程程序,两线程之间的语句是交替执行的,并且这种交替执行是没有规律的。所以在进行多线程程序设计时,往往会增加一些线程状态控制的语句以使线程的运行满足程序的要求。(a)单线程程序(b),并不是所有类型的计算机都支持多线程应用程序。但是由于Java引入了虚拟处理器技术,所以Java语言将线程支持与语言运行环境结合在一起,不管在任何系统下,Java语言都提供了多任务并发执行的能力,。这就好比一个人在处理家务的过程中,将米放在电饭锅里后再把衣服放到洗衣机中自动洗涤,然后开始做菜,等菜做好了,饭也熟了,同时衣服也洗好了。只要合理安排各个线程的运行,就可以极大地提高程序的运行效率。对多线程的综合支持是Java语言的一个重要特色,在Java中,内置了Thread类来实现多线程,,也就引入了一个Java执行环境。,一个线程是由三部分组成的:虚拟处理机(CPU),,它控制着整个线程的运行,提供对多线程的支持;执行的程序代码,传递给Thread类,由Thread类控制顺序执行;程序所处理的数据,传递给Thread类,是在代码执行过程中所要处理的数据。,虚拟处理机(CPU)被封装在Thread线程类的实例之中。这样一来,有多少个需要完成的子任务(线程)就有多少个虚拟CPU这样的“虚拟计算机”在同时运行,把一个较大的任务分割成许多较小的子任务分别地、“同时”地去完成,这就是Java多线程机制。。当生成一个Thread类
Java教材课件09 来自淘豆网m.daumloan.com转载请标明出处.