《JAVA开发葵花宝典》PPT课件.ppt

《JAVA开发葵花宝典》PPT课件.ppt

ID:52269600

大小:279.50 KB

页数:22页

时间:2020-04-03

《JAVA开发葵花宝典》PPT课件.ppt_第1页
《JAVA开发葵花宝典》PPT课件.ppt_第2页
《JAVA开发葵花宝典》PPT课件.ppt_第3页
《JAVA开发葵花宝典》PPT课件.ppt_第4页
《JAVA开发葵花宝典》PPT课件.ppt_第5页
资源描述:

《《JAVA开发葵花宝典》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第13章线程线程是什么?线程有什么作用?线程具备提高执行速度的特点,在应用程序中使用非常广泛,例如现实生活中的网络聊天功能。本章将讲述线程的基本概念,学习如何使用线程进行程序代码的编写。13.1线程的概念在讲述线程的概念之前,会先介绍什么是进程。这两个概念仅仅只有一字之差,但代表的是两个完全不同的概念。线程也是网络编程必须具备的知识点。13.1.1进程及其使用环境在讲进程之前,先介绍什么是程序。程序是计算机指令的集合,它以文件形式存储在磁盘上,而进程就是一个执行中的程序,而每一个进程都有其独立的内存空间和系统资源。(具体内容请参照本书)13.1.2

2、线程及其使用环境线程是运行程序(进程)中单个顺序的小程序,一个进程可以由多个线程组成,而这多个线程共享同一个存储空间,这使得线程间的通信比较容易。在一个多进程的程序中,如果要切换到另一个进程,需要改变地址空间的位置。然而在多线程的程序中,就不会出现这种情况,因为他们位于同一个内存空间内,只需改变运行的顺序即可。(具体内容请参照本书)13.2线程创建在Java程序语言中,可通过系统提供的编程接口去创建线程,创建线程的方法有两种:一种是通过实现Runnable接口的方式来创建线程,另一种是通过继承Thread类来创建线程。13.2.1如何创建线程创建线

3、程的方法一般有两种:1.通过Runnable接口的方式创建线程2.通过继承Thread类来创建线程:13.2.2通过实例熟悉如何创建线程下面通过一个综合实例,来看看如何创建线程。针对下面的实例,先来看看它的流程,如图13.1所示。(具体内容请参照本书)13.3线程的使用前面介绍了如何创建线程,但从上面的实例可以看到,其输出结果不尽人意,为什么呢?因为在线程的应用中存在很多新的知识点,需要大家去学习,本节将会逐个进行解释。13.3.1线程的优先级线程的执行是一种抢占方式,优先级高的比优先级低的要获得更多的执行时间,如果想让一个线程比其他线程有更多的时

4、间运行,可以通过设置线程的优先级解决。如一个线程创建后,可通过在线程中调用“setPriority()”方法,来设置其优先级,具体方法如下:(具体内容请参照本书)13.3.2线程的休眠与唤醒上面的程序段还是没有达到最终想要得到的输出结果。这里涉及到线程的休眠和唤醒功能,那什么是线程的休眠和唤醒呢?下面将分别来讲述。(具体内容请参照本书)1.线程的休眠2.线程的唤醒13.3.3线程让步所谓线程让步,就是使当前正在运行的线程对象退出运行状态,让其他线程运行,其方法是通过调用yield()来实现。这个方法不能将运行权让给指定的线程,只是允许这个线程把运行

5、权让出来,至于给谁,这就是抢占功能的事情了。(具体内容请参照本书)13.3.4线程同步本节将详细的讲述为什么要使用线程同步,并且通过现实生活中程序开发的实例,来说明线程同步的用法。前面讲述过,线程的运行权通过一种叫抢占的方式获得。一个程序运行到一半时,突然被另一个线程抢占了运行权,此时这个线程数据处理了一半,而另一个线程也在处理这个数据,那么会出现重复操作数据的现象,最终整个系统将会混乱。下面先看一个实例,通过这个实例,了解如果线程不是同步的,将会出现什么样的结果。(具体内容请参照本书)13.3.5同步块同步块是使具有某个对象监视点的线程,获得运行

6、权限的一种方法,每个对象只能在拥有这个监视点的情况下,才能获得运行权限。举个例子,一个圆桌,有4个人吃饭,但是只有一个勺子,4人中只有一个人能吃饭,并且这个人必须是拥有勺子的人,而这个勺子就相当于同步块中的监视点。(具体内容请参照本书)13.3.6同步化方法同步方法就是对整个方法进行同步。它的结构是:synchronizedvoidf(){代码}下面使用同步方法来修改上面的程序段。(具体内容请参照本书)13.4实例分析本节将分析线程的一些比较实用的实例,通过这些实例和流程图,希望读者能够掌握线程的精髓。13.4.1生产者与消费者的模拟程序设计及分析

7、下面将使用生产者和消费者的模拟程序来编写代码,其条件是:(具体内容请参照本书)13.4.2多消费者的模拟程序设计及分析本节将接着上面的实例,再增加条件:增加一个营业员。即现在是两个营业员在销售汉堡,而一个厨师在作汉堡。先来看看程序的流程,如图13.3所示。(具体内容请参照本书)13.4.3多生产者的模拟程序设计及分析本节的实例将让条件变的更加复杂,设计了两个厨师和两个营业员,针对这种复杂的现象,先来看看程序的流程,如图13.4所示。(具体内容请参照本书)13.5常见疑难解答(具体内容请参照本书)13.5.1.Java中线程与线程之间怎么通信答:共享

8、一个变量,并对此变量的访问进行同步,因为他们共享一个内存空间,所以相比之下,它比进程之间通信要简单容易的多。13.5.2什

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

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

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