JavaWeb应用开发原理与技术第7章节.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 Java的多线程机制 7.1 什么是多线程机制 7.2 Java多线程机制的实现 7.3 线程的竞争与同步 7.4 Thread类介绍 7.5 线程的生命周期 重点:多线程机制的实现 难点:竞争与同步 学时: 2小时 7.1 什么是多线程机制 线程是一个程序中的一个执行流,多线程是指一个程序中包含有多个执行流。线程和进程一样,都是实现并发操作的基本单位,线程和进程的差别主要体现在: 进程:每个进程都有独立的代码和数据空间(进程上下文),即进程占有独立的内存资源 ,进程切换的开销大。 线程:也称为轻量的进程,一个进程的多个线程共享代码和数据“堆”空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。线程具有共享的“堆”,独立的“栈”,线程可以利用“堆”来完成线程间的通信。 多进程:在操作系统中,能同时运行多个任务。 多线程:在同一应用程序中,有多个顺序流同时执行. Web编程(如下载,HTTP服务等)要求具有多线程机制。 7.2 Java多线程机制的实现 Java提供了两种线程编程的方法: 第一种是通过继承Thread类来完成,该方法用于Java application应用程序中. 第二种是通过实现Runnabled接口来完成,该方法用于Java applet小程序中. 7.2 Java多线程机制的实现 第一种是通过继承Thread类来完成,该方法用于Java application应用程序中。步骤如下: public class myThread extends Thread 把线程要完成的动作放入类myThread的Run()方法中,生成它的一个对象newthread; newthread=new myThread(); 然后调用对象newthread的start()方法启动线程. newthread.start(); [例7-1] CounterApplication.java (P95页) 7.2 Java多线程机制的实现 7.2 Java多线程机制的实现 第二种是通过实现Runnabled接口来完成,该方法z主要用于Java applet小程序中。步骤如下: 为什么在applet小程序中不能采用通过继承Thread类来实现线程呢? 因为Java不允许多重继承. 通过Runnable接口实现多线程的方法是:首先设计一个实现Runnable接口的类,然后建立该类的对象,以此对象为参数建立Thread类的对象,调用Thread类的方法start()启动线程,将执行权交给Runnable的run()方法。 [例7-2] CounterApplet.java和CounterApplet.html (P96页) (自学) 7.3 线程的竞争与同步 多个线程可能会存取同一变量成员造成“竞争”。 解决办法是采取同步机制。即使用synchronized的关键字设定同步区,当某个对象用synchronized修饰时,表明该对象在任一时刻只能由一个线程访问。 对一段代码进行同步的方法是把它放入到Synchronized块中,其格式如下:? synchronized(someObject) { …… //代码 } 解决线程竞争与同步实例:程序清单[7-4] MainThread.java (P100页) MainThread1.java 7.4 Thread类介绍 构造函数 public Thread() public Thread(Runnable target) public Thread(ThreadGroup group,Runnable target) public Thread(String name) public Thread(ThreadGroup group,String name) public Thread(Runnable target,String name) public Thread(ThreadGroup group,Runnable target,String name) 其中包括以下参数: Runnable target :当线程启动时,它激发target中的run()方法; ThreadGroup group:当创建该线程时,可以将该线程加入到不同的线程组group中; String name:线程名,可以使用它使线程分离,也可以用null作为线程名。 7.5 线程的生命周期 Java的线程要经过新生,就绪,运行,阻塞和死亡五种状态,线程从新生到死亡的状态变化过程称为生命周期。 1.新生状态:执行下列语句时,线程就处于新生状态: Thread myThread

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档