- 519
- 0
- 约 35页
- 2017-05-28 发布于上海
- 举报
JAVA多线程ppt课件
Tel:0571 QQ;106159278 Java多线程 目标 多线程的概念 如何创建线程 死锁的概念 线程同步 使用 wait() 和 notify() 在线程之间进行通信 线程生命控制 多线程的概念 多线程:程序中多个片断同时执行。 为了更好的了解线程,用办公室工作人员作比喻。办公室工作人员就象CPU,根据上级指示做工作,就象执行一个线程。在单线程环境中,每个程序编写和执行的方式是任何时候程序只考虑一个处理顺序。用我们的比喻,就象办公室工作人员从头到尾不受打扰和分心,只安排做一个工作。当然,实际生活中工作人员很难一次只有一个任务,更常见的是工作人员要同时做几件事。老板将工作交给工作人员,希望工作人员做一这个工作,再做点那个工作,等等。如果一个任务无法做下去了,比如工作人员等待另一部门的信息,则工作人员将这个工作放在一边,转入另一个工作。一般来说,老板希望工作人员手头的各个任务每一天都有一些进展。这样就引入了多线程的概念。多线程编程环境与这个典型的办公室非常相似,同时给CPU分配了几个任务或线程。和办公室人员一样,计算机CPU实际上不可能同一时间做几件事,而是把时间分配到不同的线程,使每个线程都有点进展。如果一个线程无法进行,比如线程要求的键盘输入尚未取得,则转入另一线程的工作。通常,CPU在线程间的切换非常迅速,使人们感觉到好象所有线程是同时进行的。 实现 必须实现Runnable接口 间接实现:扩展Thread类,或者其他实现runnable接口的类 直接实现Runnable接口 Java中的多线程 Thread类是java.lang包中的一个专门用来创建线程和对线程进行操作的类。这些方法分为: 构造方法。 run()方法。 改变线程状态的方法。 操作线程属性的方法 多线程的实现方法 通过以下两种方法创建 Thread 对象: 1.声明一个 Thread 类的子类,并覆盖 run() 方法。 class mythread extends Thread { public void run( ) {/* 覆盖该方法*/ } } 2.声明一个实现 Runnable 接口的类,并实现 run() 方法。 class mythread implements Runnable{ public void run( ) {/* 实现该方法*/ } } 继承Thread类 定义一个类,继承Thread类,并override run()方法,在这个方法里是你希望这个线程运行的代码。 创建一个这个新类的对象(myThread)。 调用myThread对象的start()方法来启动线程。 实现Runnable接口实现多线程 定义一个类,实现Runnable接口,并override run()方法,在这个方法里是你希望这个线程运行的代码。 创建一个这个新类的对象。 创建一个Thread类的对象,用刚才的Runnable对象作为构造函数参数。 调用Thread对象的start()方法来启动线程。 两种实现线程方式的对比 扩展Thread的优点 当一个run()方法体现在继承Thread类的类中,用this指向实际控制运行的Thread实例。因此,代码不再需要使用如下控制: Thread.currentThread().join(); 而可以简单地用: join(); 因为代码简单了一些,许多Java编程语言的程序员使用扩展Thread的机制。注意:如果你采用这种方法,在你的代码生命周期的后期,单继承模型可能会给你带来困难。 实现Runnable的优点 从面向对象的角度来看,Thread类是一个虚拟处理机严格的封装,因此只有当处理机模型修改或扩展时,才应该继承类。正因为这个原因和区别一个正在运行的线程的处理机、代码和数据部分的意义。 由于Java技术只允许单一继承,所以如果你已经继承了Thread,你就不能再继承其它任何类,例如Applet。在某些情况下,这会使你只能采用实现Runnable的方法。 因为有时你必须实现Runnable,所以你可能喜欢保持一致,并总是使用这种方法。 线程的启动 一个个新创建的线程并不自动开始运行。你必须调用它的start()方法。 调用start()方法使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。 不要直接调用run()方法。 区别:普通方法调用,启动线程。 尽管线程变为可运行的,但它并不立即开始运行。在一个只带有一个 处理机的机器上,在一个时刻只能进行一个动作。下节描述了如果有一个以上可运行线程时,如何分配处理机。 在Java中,线程是抢占式的,但并不一定是分时的 (一个常见
您可能关注的文档
- ESD防静电知识详解.ppt
- FLUENT培训教材2求解器基础.ppt
- FLUENT培训教材7UDF.ppt
- FLUENT培训教材3边界条件.ppt
- FLUENT培训教材5湍流模型.ppt
- FLUENT培训教材8物理模型.ppt
- fortran语言教程.ppt
- FMEA.ppt
- FrontPage教学 教你用好FrontPage.ppt
- Flexsim基础知识部分.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 兰科植物促生菌筛选与人工栽培技术研究.pdf
- 氢氧化钠(片碱)MSDS安全技术说明书.docx
- 国家开放大学电大《成本会计》试题及答案.pdf
- 数学分析第四版下册课后习题答案.pdf
- 数学分析第四版下册课后习题答案.docx
- 2025年秋国家开放大学《商务英语3》形考任务参考答案.pdf
- Unit 2 Know your body Speed up 外研版(三起)(2024)英语三年级下册.pptx VIP
- 2026年春季开学教师收心会校长发言:骏驰启新程,笃行育新人;凝心再聚力,实干谱新篇.docx VIP
- Unit 2 Know your body Start up 外研版(三起)(2024)英语三年级下册.pptx VIP
- 空客A320飞行手册教程.doc VIP
原创力文档

文档评论(0)