java编程高级-多线程编程new

java编程高级-多线程编程new

ID:34446601

大小:1.11 MB

页数:31页

时间:2019-03-06

java编程高级-多线程编程new_第1页
java编程高级-多线程编程new_第2页
java编程高级-多线程编程new_第3页
java编程高级-多线程编程new_第4页
java编程高级-多线程编程new_第5页
资源描述:

《java编程高级-多线程编程new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、JAVA编程高级——多线程编程3Sept.2008©NeusoftConfidential多线程编程目标:Java线程机制以及多线程编程的实现本章旨在向学员介绍:教学方法:讲授ppt+1)Java线程模型。上机练习2)Java多线程实现的两种方式:接口和继承。3)线程的休眠,中断及优先级。4)线程的同步和死锁本章要点•多线程简介多线程模型•多线程实现的两种方式实现Runnable接口继承Thread类•线程的属性和控制线程状态及其生命周期线程类的主要方法休眠和中断•多线程同步/通信问题线程同步,锁和死锁Contents1多线程简介2多线程实现的两种

2、方式3线程的属性和控制4多线程同步/通信问题多线程简介•基本概念线程一个程序内部的顺序控制流进程计算机在执行的程序的实体e.g.一个.class文件一个.exe文件一个进程中可以包含……一个或多个线程,一个线程就是一个程序内部的一条执行线索进程/线程区别•进程和线程的区别每个进程都有独立的代码和数据空间,进程的切换会有很大的开销同一类线程共享代码和数据空间,每个线程有独立运行的栈和程序计数器,线程切换的开销小•多进程和多线程多进程:在操作系统中能同时运行多个任务(程序)多线程:在同一应用程序中有多个顺序流同时执行Contents1多线程简介2多线程实现的

3、两种方式3线程的属性和控制4多线程同步/通信问题多线程实现的两种方式•多线程的实现(1)创建线程类继承Thread类或实现Runnable接口(2)通过Thread类构造器来创建线程对象Thread()Thread(Runnabletarget)(3)通过start()方法激活线程对象线程运行多线程实现的两种方式•创建线程的两种方式—线程类继承Thread类——java.lang.Thread实现Runnable接口——java.lang.Runnable•run()方法—线程运行体要将一段代码(线程体)在一个新的线程上运行,该代码应该在一个线程类

4、的run()函数中写一个类implementsRunnable接口,且必须覆盖Runnable接口中的run()方法写一个类extendsThread类,且必须重写Thread类的run()方法继承Thread类实现线程类•继承Thread类线程调用线程类定义线程类继承Thread类覆盖run()方法publicvoidrun()TestThread.javaThreadDemo.java继承Thread类实现线程类•run()与start()TestThread.java实现Runnable接口实现线程类•实现Runnable接口线程调用线程类定义线

5、程类实现Runnable接口线程共享同样的数据和代码覆盖Runnable接口中的唯一的方法publicvoidrun()TestRunnable.javaRunnableDemo.java两种实现方式的比较•两种方式的比较使用Runnable接口可以避免由于JAVA的单继承性带来的局限适合多个相同的程序代码的线程去处理同一资源情况,把线程同程序的代码、数据有效的分离推荐使用实现Runnable接口Contents1多线程简介2多线程实现的两种方式3线程的属性和控制4多线程同步/通信问题线程状态及其生命周期•线程的状态及其生命周期一个Thread对象在

6、它的整个生存期中能以几种不同的状态存在start()—方法使线程处于可以运行的状态,但不一定意味着该线程立即开始运行线程类中的主要方法•线程中的主要方法——java.lang.Thread线程的优先级•线程的优先级Java提供一个线程调度器来监控程序中启动后进入就绪状态的所用线程,线程调度器按照线程的优先级来决定应调度哪个线程来执行•线程的优先级用数字表示,范围从1到10,一个线程缺省的优先级是5Thread.MIN_PRIORITY=1Thread.NORM_PRIORITY=5Thread.MAX_PRIORITY=10•线程优先级方法getPri

7、ority()——确定线程的优先级setPriority()——设置线程的优先级线程的休眠•线程的休眠•让线程中止一段时间的静态方法sleep()•Thread.sleep(longmillis)—暂时停止执行millis毫秒•在睡眠期满的瞬间,再次调用该线程不一定会恢复它的执行275-14-5•导致当前线程等待,直到调用这个join方法的线程终止join()•join()join(longmillis)join(longmillis,intnanos)275-14-7•为其他可运行的线程提供执行机会yield()•静态方法—Thread.yield()275

8、-14-6线程的中断•线

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

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

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