欢迎来到天天文库
浏览记录
ID:34446437
大小:217.12 KB
页数:44页
时间:2019-03-06
《java语言编程-多线程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Date:26March2007ITEducation&TrainingJava语言编程王宁东软培训(沈阳)Date:26March2007ITEducation&TrainingJava的线程机制•定义、创建、执行新线程•结束线程的执行•线程的优先级•线程的状态及状态间的转换•程序对线程执行的控制Date:26March2007ITEducation&TrainingJava的线程机制•共享访问与线程同步•通过wait和notify在线程间交互•Thread类的其他重要方法•Java多线程机制的特点•多线程与垃圾收集Date:26March2007ITEducation&T
2、raining简化的计算机•最简单的看法包含三个部分:¾CPU¾ROM(保存程序代码)¾RAM(保存要操作的数据)•只执行一个作业•两个以上的作业由两个以上的计算机完成Date:26March2007ITEducation&Training线程•线程可以被看作一个简化的计算机•线程的三个组成部分:¾虚拟CPU¾代码¾数据•线:所有的操作都具有先、后顺序•每个线程内,按照时间顺序地执行代码•不同线程之间不能确定代码的执行顺序Date:26March2007ITEducation&Training线程与进程•进程:一个应用程序•进程通常独占内存•一个或多个线程组成一个进程•多个线
3、程可能共享内存:¾代码¾数据Date:26March2007ITEducation&Training做过的程序•文本程序:¾通常都是一个线程¾从main方法开始¾代码的执行按照严格的时间顺序¾执行到main方法结束•GUI程序:¾图形界面在另外的线程中运行Date:26March2007ITEducation&TrainingJava中的线程•使用java.lang.Thread类创建和控制线程•虚拟CPU被封装在java.lang.Thread类的一个实例中•Thread类的实例决定了代码和数据•Java中任何一个线程都必须是Thread类或其继承类的一个实例•创建并启动线
4、程:P13-6Date:26March2007ITEducation&Training创建线程•使用Thread类:¾publicThread(Runnabletarget)¾publicvoidstart()•java.util.Runnable接口¾publicvoidrun()¾线程从Runnable对象的run方法开始执行Date:26March2007ITEducation&Training线程的启动和终止•开始一个新线程•Thread类的publicvoidstart()•start方法调用后线程处于可执行状态,但并不一定立即执行•线程的执行由JVM调度•线程的终
5、止:¾自动结束:run方法执行结束返回时¾强行停止:Thread类的publicvoiddestroy()Date:26March2007ITEducation&Training多线程共享数据和代码•举例:¾多线程源于同一个Runnable实例Threadt1=newThread(r);Threadt1=newThread(r);t1.start();t2.start();¾共享Runnable的run方法的代码¾共享Runnable实例的数据Date:26March2007ITEducation&Training线程的状态•线程的状态:¾新建¾可运行¾运行¾阻塞¾中止•线程
6、的阻塞:¾多种原因可导致线程阻塞¾Thread类的sleep方法Date:26March2007ITEducation&Training线程调度(线程缓冲池)•一个线程对象的start方法只能被执行一次•线程是抢先式的:优先级•一个时刻只有一个线程在运行•运行到不再是可运行的,或另一个更高优先级的线程成为可运行•所有可运行线程按优先级保存在缓冲池中•P13-11Date:26March2007ITEducation&Training线程状态间的转换P13-11BlockingNewRunnableRunningDeadDate:26March2007ITEducation&T
7、raining线程的优先级•1~10的整数来表示,越小则优先级越低•Thread类的setPriority(intnewPriority)方法来设置线程的优先级:¾例如:aThread.setPriority(5);•Thread类的三个常量,表示常用的线程优先级:¾Thread.MAX_PRIORITY//10¾Thread.NORM_PRIORITY//5¾Thread.MIN_PRIORITY//1•缺省时线程具有NORM_PRIORITYDate:26March2007ITEducation&T
此文档下载收益归作者所有