Java面向对象程序设计教学全套课件教程ch6.ppt

Java面向对象程序设计教学全套课件教程ch6.ppt

ID:51617566

大小:1.02 MB

页数:32页

时间:2020-03-26

Java面向对象程序设计教学全套课件教程ch6.ppt_第1页
Java面向对象程序设计教学全套课件教程ch6.ppt_第2页
Java面向对象程序设计教学全套课件教程ch6.ppt_第3页
Java面向对象程序设计教学全套课件教程ch6.ppt_第4页
Java面向对象程序设计教学全套课件教程ch6.ppt_第5页
资源描述:

《Java面向对象程序设计教学全套课件教程ch6.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章Java的线程主要内容6.1线程的概念与POSIX标准6.1.1线程的概念6.1.2线程的POSIX标准6.2多线程的Java实现6.2.1线程的创建方法6.2.2线程的状态6.3互斥线程间的同步机制6.3.1多线程带来的冲突问题6.3.2共享资源合理使用的实现6.3.3按同步协调程度划分的线程间的关系2021/10/22Java面向对象程序设计教程6.1线程的概念与POSIX标准线程的概念线程其实是控制线程(Threadofcontrol)的简写。控制线程就是程序运行时的路径,是在一个程序

2、中与其它控制线程无关的能够独立运行的代码片段。与线程有关的几个名词:进程与线程并发性与并行性异步与同步2021/10/24Java面向对象程序设计教程基于进程的多任务处理环境进程是重量级的内核级实体,需要分配它们自己独立的地址空间:包括有虚拟内存映射、文件描述符、用户ID等,并且每个进程都有属于自己的这些集合。用户的程序要访问进程结构中的数据、查询或改变状态,唯一方法是通过系统调用。进程间通信和转换是昂贵和受限的。2021/10/25Java面向对象程序设计教程基于线程的多任务处理环境线程是轻量级

3、实体,由寄存器、堆栈和某些数据组成。进程结构的其余部分由所有的线程所共享:如地址空间、文件描述符等——它们共享相同的地址空间并且共同分享同一个进程。线程间通信是便宜的,线程间的转换也是低成本的。2021/10/26Java面向对象程序设计教程线程并发并发性(Concurrency)是两个或多个线程(或传统的进程)可以同时在执行代码之中;可以是相同的代码,也可以是不同的代码。这些线程可以一次执行,也可以多次执行,即一个已开始执行但被中断,而另外一个已开始了。但在给定的时间点上,只有一个在CPU在处理

4、一个线程。2021/10/27Java面向对象程序设计教程线程并行并行性(Parallelism)是针对多处理器环境而言的,是指两个或多个线程真正同时运行在不同的CPU上。在多处理器机上,很多不同的线程可以并行运行,或者说是同时运行。2021/10/28Java面向对象程序设计教程异步与同步异步世界需要处理同步业务有3个人在3个收银台前结帐3个人结帐是异步的每个人信用卡在银行业务处理时需保证同步2021/10/29Java面向对象程序设计教程线程的POSIX标准2021/10/210Java面向对

5、象程序设计教程6.2多线程的Java实现主线程通过调用Thread类的currentThread方法来查看主线程:Thread.currentThread()举例:MainThread.java2021/10/212Java面向对象程序设计教程创建线程有两种方式通过直接扩展Thread类来直接创建线程:publicclassBidThreadextendsThreadnewBidThread(10,1000).start()举例:BidThread.java,Auction.java通过设计一个类

6、,使之实现java.lang.Runnable接口,再把该接口作为参数传递给Thread类的构造方法后间接创建线程:publicclassBidRunimplementsRunnablenewThread(newBidRun(10,1000)).start()举例:BidRun.java,Auction.java2021/10/213Java面向对象程序设计教程采用间接创建线程的原因第一个理由是我们并不改变线程本身的性质,仅覆盖run方法,并没有增加新的功能,因此将Thread扩展子类并不恰当,这

7、不太符合类扩展规范。第二个理由是:如果实现Runnable接口,它可能使我们所设计的类扩展其它类型而变得更为有用。2021/10/214Java面向对象程序设计教程线程内容的定义覆盖或实现run方法…start方法一般只用来触发线程,把线程的内容放在这个方法体中不太规范,而且这样做实际上线程不会竞争运行。思考与练习11如果直接调用run方法,线程也不会竞争运行,必须通过start方法间接调用run方法。思考与练习122021/10/215Java面向对象程序设计教程Thread类一些方法使用的例子

8、线程优先级:PriorityTest.java创建守护线程:DaemonTest.java线程列表:ThreadList.java线程组信息:ThreadGroupTest.java2021/10/216Java面向对象程序设计教程线程的状态2021/10/217Java面向对象程序设计教程与线程所处状态有关的方法举例join方法的例子:JoinTest.javayield方法的例子:YieldTest.javainterrupt方法的例子:InterruptTest.java20

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。