教材第8章教材第章
Java多线程Java多线程
进程与线程线程的概念模型线程类线程的同步与互斥
程序-进程-线程
程序是为完成特定任务、程序是为完成特定任务、用某种语言编写的一组指令的集合。指一段静态的代码。令的集合。指一段静态的代码。进程是程序的一次执行过程,进程是程序的一次执行过程,是
系统进行调度和资源分配的一个独立单位。源分配的一个独立单位。
PCB执行等待挂起CPU
就绪
程序-进程线程程序进程-线程进程
线程是比进程更小的执行单位。线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索。成多条执行线索。每个线程也有它自身的产生、存在和消亡的过程,每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。也是一个动态的概念。一个线程有它自己的入口和出口,一个线程有它自己的入口和出口,以及一个顺序执行的序列。行的序列。线程不能独立存在,必须存在于进程中。线程不能独立存在,必须存在于进程中。线程—轻量级的进程
系统负担小,主要是的分配。系统负担小,主要是CPU的分配。的分配
多线程
多线程是指同时存在几个执行体,多线程是指同时存在几个执行体,按几条不同的执行线索共同
工作的情况。行线索共同工作的情况。单个进程中的并发计算。多线程实现单个进程中的并发计算。各线程间共享进程空间的数据,各线程间共享进程空间的数据,并利用这些共享单元来实现数据交换、实时
通信与必要的同步操作。元来实现数据交换、实时通信与必要的同步操作。多线程的程序能更好地表述和解决现实世界的具体
问题,问题,是
计算机应用开发和程序
设计的一个必然发展趋势。展趋势。
进程与多线程
传统进程
多线程进程
进程
单线程
多线程
java与多线程与多线程
Java语言的一个重要功能特点就是内置对多线程的语言的一个重要功能特点就是内置对多线程的支持,支持,它使得编程人员可以很方便地开发出具有多线程功能,能同时处理多个任务的功能强大的应用线程功能,程序。程序。Java的所有类都是在多线程的思想下定义的,Java的所有类都是在多线程的思想下定义的,的所有类都是在多线程的思想下定义的利用线程使整个系统成为异步。利用线程使整个系统成为异步。每个Java程序都有一个隐含的主线程:程序都有一个隐含的主线程:每个程序都有一个隐含的主线程
applicationmain方法Applet小程序,主线程指挥浏览器加载并执行小程序,小程序主线程指挥浏览器加载并执行java小程小程序。
线程的概念模型
线程的三个组成部分
线程代码被操作数据
线程控制(虚拟CPU)
Thread类类
Thread类综合了类综合了Java程序中一个线程需要拥有的类综合了程序中一个线程需要拥有的属性和方法。当生成一个Thread类的对象后,一个新的线程诞生类的对象后,当生成一个类的对象后了。每个线程都是通过目标对象的方法run()来完成其操每个线程都是通过目标对象的方法来完成其操作的。方法run()称为线程体线程方法)。称为线程体(线程方法线程方法)。作的。方法提供线程体的目标对象是在初始化一个线程时指明的。任何实现了Runnable接口(实现接口(方法)任何实现了接口实现run()方法)的类方法的对象都可以作为线程的目标对象。的对象都可以作为线程的目标对象。
建立线程例
publicclassThreadTest{publicstaticvoidmain(String[]args){Job1j=newJob1();Threadt1=newThread(j);t1.start();}}classJob1implementsRunnable{intI;publicvoidrun(){while(i<50){System.out.println(i++);}}