[计算机软件及应用]《移动通信软件编程基础—JAVA语言》第11章.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《[计算机软件及应用]《移动通信软件编程基础—JAVA语言》第11章.ppt》由会员分享,可在线阅读,更多相关《[计算机软件及应用]《移动通信软件编程基础—JAVA语言》第11章.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、IC-MSP知识回顾I/OI/O输入输入 与输出与输出 基本文件操作基本文件操作字节流字节流字符流字符流FileFile类类使用流使用流FileInputStreamFileInputStream类和类和FileOutputStreamFileOutputStream类类控制台输入流控制台输入流System.inSystem.in过滤流过滤流缓冲流缓冲流包装流包装流字节流和字符流的比较字节流和字符流的比较FileReaderFileReader类与类与BufferedReaderBufferedReader类类FileWriterFileWriter类与类与BufferedReaderBuff
2、eredReader类类IC-MSP11多线程第章IC-MSP本章目标线程的基本概念线程的基本概念JavaJava中线程的实现方法中线程的实现方法线程的优先级线程的优先级J Javaava中同步的实现中同步的实现 死锁及其解决方法死锁及其解决方法IC-MSP进程的基本概念 进程进程1 1 存储器存储器 动态堆动态堆 静态数据静态数据 程序代码程序代码 存储器存储器 堆栈堆栈 进程进程2 2 存储器存储器 动态堆动态堆 静态数据静态数据 程序代码程序代码 存储器存储器 堆栈堆栈 进程间的关系比较疏远;进程间的关系比较疏远;各个进程是在自己独有的地址空间内执行各个进程是在自己独有的地址空间内执行。
3、IC-MSP线程的基本概念 进程进程 动态堆动态堆 静态数据静态数据 程序代码程序代码 寄存器寄存器 堆栈堆栈 寄存器寄存器 堆栈堆栈 存储器存储器线程线程1 1线程线程2 2IC-MSP线程的基本概念v线程是进行中的实体,一个进程中可以包含一个或多线程是进行中的实体,一个进程中可以包含一个或多个线程。个线程。v一个线程在执行期间同样有一个开始,一个执行序列一个线程在执行期间同样有一个开始,一个执行序列和一个结束点。和一个结束点。v单个线程不是一个程序,并不能依靠自身单独执行,单个线程不是一个程序,并不能依靠自身单独执行,它必须在程序中执行。它必须在程序中执行。v基于线程的多任务处理环境中,线
4、程是最小的处理单基于线程的多任务处理环境中,线程是最小的处理单位。实现多任务需要多线程。位。实现多任务需要多线程。IC-MSP线程的基本概念多线程:多线程:v在在JavaJava中,一个应用程序可以包含多个线程。每个中,一个应用程序可以包含多个线程。每个线程执行特定的任务,并可与其他线程并发执行。线程执行特定的任务,并可与其他线程并发执行。 v多线程使系统的空转时间减少,提高多线程使系统的空转时间减少,提高CPUCPU利用率。利用率。v多线程编程环境用方便的模型隐藏多线程编程环境用方便的模型隐藏CPUCPU在任务间切换在任务间切换的事实。的事实。IC-MSP主线程public class Ma
5、inThreadDemo public static void main(String args) /获得主线程的一个引用获得主线程的一个引用 Thread t = Thread.currentThread(); /输出线程信息输出线程信息 System.out.println(t); 运行运行结果结果输出默认的线程信息输出默认的线程信息Threadmain,5,mainThreadmain,5,mainIC-MSPThread类的常用方法方法方法说明说明void run()运行一个线程运行一个线程void start()启动线程并调用启动线程并调用run方法方法static currentT
6、hread()返回当前执行的线程返回当前执行的线程void join()等待线程终止等待线程终止final void setName(String name)改变线程的内部名称改变线程的内部名称final String getName()返回线程的内部名称返回线程的内部名称static void sleep(long millis)设置线程为休眠状态设置线程为休眠状态IC-MSPThread类常用方法的使用类常用方法的使用public class CreateThreadDemopublic static void main(String args)Thread T = Thread.curr
7、entThread();System.out.println(T);T.setName(ThreadNew);System.out.println(T);for(int i = 0; i10; i+)System.out.println(i);try T.sleep(1000);catch(InterruptedException ie) ie.printStackTrace(); IC-MSP创建一个线程类class MyThread extends Thread public MyThread(String name)super(name); public void run() for(i
8、nt i = 0; i10; i+) System.out.println(实现线程实现线程: + this); try sleep(1000); catch(InterruptedException ie) ie.printStackTrace(); public class CreateThreadDemo public static void main(String args) MyThread T = new MyThread( study); T.start(); IC-MSP线程的状态v线程的状态:新生、就绪、运行、睡眠、挂起、阻塞、线程的状态:新生、就绪、运行、睡眠、挂起、阻塞、
9、死亡七种状态,线程从新生到死亡的状态变化过程称为生死亡七种状态,线程从新生到死亡的状态变化过程称为生命周期命周期 IC-MSP线程状态的实现新建新建建立了一个线程对象线程处于新建状态建立了一个线程对象线程处于新建状态就绪就绪在创建线程后,它将处于就绪状态在创建线程后,它将处于就绪状态运行运行线程在开始执行时进入运行状态线程在开始执行时进入运行状态睡眠睡眠线程的执行可通过使用线程的执行可通过使用sleep()sleep()方法来暂时中止方法来暂时中止等待等待如果调用了如果调用了wait()wait()方法,线程将处于等待状态方法,线程将处于等待状态挂起挂起suspend()suspend()方法
10、使用线程处于挂起状态方法使用线程处于挂起状态恢复恢复resume()resume()方法可以使用挂起的线程方法可以使用挂起的线程阻塞阻塞在线程等待一个事件时(例如输入在线程等待一个事件时(例如输入/ /输出操作),输出操作),就称其处于阻塞状态就称其处于阻塞状态死亡死亡在在run()run()方法已完成执行或其方法已完成执行或其stop()stop()方法被调用方法被调用之后,线程就处于死亡状态之后,线程就处于死亡状态IC-MSP线程状态的实现class MyThread extends Thread public MyThread(String name)super(name); Syste
11、m.out.println(线程就绪线程就绪); public void start()System.out.println(线程启动线程启动);run(); public void run() System.out.println(线程运行线程运行);try System.out.println(线程将要休眠线程将要休眠10秒秒); sleep(1000); System.out.println(线程休眠线程休眠10秒继续运行秒继续运行);catch(InterruptedException ie) ie.printStackTrace(); public class CreateThrea
12、dDemo public static void main(String args) MyThread T = new MyThread(study); T.start(); System.out.println(线程死亡线程死亡); IC-MSP暂停线程的方法线程让出线程让出CPU时间片的方法:时间片的方法:无法获得无法获得CUP时间:线程优先级比较低时间:线程优先级比较低线程休眠:使用线程休眠:使用sleep()方法方法线程显式出让线程显式出让CUP控制权:调用控制权:调用yield()方法方法线程等待:调用线程等待:调用wait()方法方法阻塞:线程由于等待一个文件阻塞:线程由于等待一个
13、文件I/O事件事件IC-MSP线程优先级class ChildThread extends Threadpublic void run()while(true)System.out.println(this + 子线程在运行子线程在运行);yield();public class ThreadPriorityDemopublic static void main(String args)Thread MainT = Thread.currentThread();ChildThread ChildT = new ChildThread();ChildT.setPriority(Thread.MA
14、X_PRIORITY);ChildT.start();for(int i = 0; i1000; i+)System.out.println(MainT + 主线程在运行主线程在运行);IC-MSPJava中线程的实现方法v 继承继承Thread类类 创建一个新类来继承创建一个新类来继承Thread类,然后重载类,然后重载run()方法,这个方法,这个run方法是新线程的入口。方法是新线程的入口。v 实现实现Runnable接口接口 通过实现通过实现Runnable接口的方法创建一个对象的接口的方法创建一个对象的线程。为了实现线程。为了实现Runnable接口,类必须定义一个接口,类必须定义一
15、个名为名为 run 的无参数的方法的无参数的方法 。IC-MSP实现Runnable接口class MyFriend public void sayHello()System.out.println(朋友!好久不见!朋友!好久不见!); class Welcome extends MyFriend implements Runnable public void run() while(true) sayHello(); tryThread.sleep(3000); catch(InterruptedException ie)ie.printStackTrace(); IC-MSP使用Runna
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件及应用 移动通信软件编程基础JAVA语言 计算机软件 应用 移动 通信 软件 编程 基础 JAVA 语言 11
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内