《精品JAVA专业版》 第十章 多线程

Java2网络编程基础 第十章 10 多线程 Designed by Chiyong C2005
1 Designed by Chiyong,©2005 Java2 网络编程基础 多线程 第十章

回顾 Java基本类是作为AWT的扩展而开发的 · Swing是JFC下的一组类,提供轻量级可 视化组件,可用于创建美观的GUI Swing容器有两类:顶级容器、中间容器 · Swing标签既可以显示文本也可以显示图像 Swing文本组件 Swing中用于选择性输入的常用组件 菜单是GUI中非常有用的一部分 Designed by Chiyong C2005
2 Designed by Chiyong,©2005 回顾 • Java 基本类是作为AWT 的扩展而开发的 • Swing 是 JFC 下的一组类,提供轻量级可 视化组件,可用于创建美观的GUI • Swing 容器有两类:顶级容器、中间容器 • Swing标签既可以显示文本也可以显示图像 • Swing文本组件 • Swing中用于选择性输入的常用组件 • 菜单是GUI中非常有用的一部分

目枥 了解多线程的概念 掌握如何创建线程 了解死锁的概念 掌握线程同步 掌握使用wait0和 notify在线程之间 进行通信 Designed by Chiyong C2005
3 Designed by Chiyong,©2005 目标 • 了解多线程的概念 • 掌握如何创建线程 • 了解死锁的概念 • 掌握线程同步 • 掌握使用 wait() 和 notify() 在线程之间 进行通信

多任务处理 多任务处理有两种类型: 基于进程 基于线程 进程是指一种“自包容”的运行程序,有 自己的地址空间线程是进程内部单一的 个顺序控制流 基于进程的特点是允许计算机同时运行两 个或更多的程序 ·基于线程的多任务处理环境中,线程是最 小的处理单位 Designed by Chiyong C2005
4 Designed by Chiyong,©2005 多任务处理 • 进程是指一种“自包容”的运行程序,有 自己的地址空间;线程是进程内部单一的一 个顺序控制流 • 基于进程的特点是允许计算机同时运行两 个或更多的程序。 • 基于线程的多任务处理环境中,线程是最 小的处理单位。 多任务处理有两种类型: - 基于进程 - 基于线程

基于线程的多任务处理的优点 基于线程所需的开销更少 在多任务中,各个进程需要分配它们自己独 立的地址空间 多个线程可共享相同的地址空间并且共同分 享同一个进程 ·进程间调用涉及的开销比线程间通信多 线程间的切换成本比进程间切换成本低 Designed by Chiyong C2005
5 Designed by Chiyong,©2005 基于线程的多任务处理的优点 • 基于线程所需的开销更少 – 在多任务中,各个进程需要分配它们自己独 立的地址空间 – 多个线程可共享相同的地址空间并且共同分 享同一个进程 • 进程间调用涉及的开销比线程间通信多 • 线程间的切换成本比进程间切换成本低

多线程 多线程 在Java中,一个应用程序可以包含多个线程。 每个线程执行特定的任务,并可与其他线程并 发执行 多线程使系统的空转时间最少,提高CPU利用 率 多线程编程环境用方便的模型隐藏CPU在任务 间切换的事实 Designed by Chiyong C2005
6 Designed by Chiyong,©2005 多线程 • 多线程 – 在Java中,一个应用程序可以包含多个线程。 每个线程执行特定的任务,并可与其他线程并 发执行 – 多线程使系统的空转时间最少,提高CPU利用 率 – 多线程编程环境用方便的模型隐藏CPU在任务 间切换的事实

主线程 在Java程序启动时,一个线程立刻运行 该线程通常称为程序的主线程。 主线程的重要性体现在两个方面: 它是产生其他子线程的线程。 通常它必须最后完成执行,因为它执行各种 关闭动作。 Designed by Chiyong C2005
7 Designed by Chiyong,©2005 主线程 • 在Java程序启动时,一个线程立刻运行, 该线程通常称为程序的主线程。 • 主线程的重要性体现在两个方面: – 它是产生其他子线程的线程。 – 通常它必须最后完成执行,因为它执行各种 关闭动作

主线程示例 class Mythread extends Thread i public static void main( string args获得当前线程, Thread t= Thread currentThread oi 庄线程 System. out. print1n("当前线程是:"+t) t setName("MyJavaThread")i 改变线程的 内部名称 System. out. println("当前线程名是:"+t); try t for(int i=0;1 Designed by Chiyong, C2005
8 Designed by Chiyong,©2005 主线程示例 class Mythread extends Thread { public static void main(String args[]) { Thread t= Thread.currentThread(); System.out.println("当前线程是: "+t); t.setName("MyJavaThread"); System.out.println("当前线程名是: "+t); try { for(int i=0;i<3;i++) { System.out.println(i); Thread.sleep(1500); } } catch(InterruptedException e) { System.out.println("主线程被中断"); } } } 获得当前线程, 即主线程 改变线程的 内部名称 输出每个数后 暂停1500毫 秒

创建线程2-1 通过以下两种方法创建 Thread对象 声明一个 Thread类的子类,并覆盖run(方法。 class mythread extends Thread t pub1 ic void run(){/覆盖该方法*/} >声明一个实现 Runnable接口的类,并实现run0 方法。 class mythread implements Runnable pub1 ic void run(){/实现该方法*/} Designed by Chiyong C2005
9 Designed by Chiyong,©2005 创建线程 2-1 • 通过以下两种方法创建Thread 对象: ➢声明一个 Thread 类的子类,并覆盖 run() 方法。 class mythread extends Thread { public void run( ) {/* 覆盖该方法*/ } } ➢声明一个实现 Runnable 接口的类,并实现 run() 方法。 class mythread implements Runnable{ public void run( ) {/* 实现该方法*/ } }

创建线程2-2 ·要触发一个新线程,使用 start(0方法,如 Mythread t new Mythreadoi 七.s七ayt(); 在调用 start(0方法时,将创建一个新的控 制线程,接着它将调用run方法。 run0方法中的代码定义执行线程所需的功 能。 Designed by Chiyong C2005
10 Designed by Chiyong,©2005 创建线程 2-2 • 要触发一个新线程,使用 start() 方法,如: Mythread t = new Mythread(); t.start(); • 在调用 start() 方法时,将创建一个新的控 制线程,接着它将调用run() 方法。 • run() 方法中的代码定义执行线程所需的功 能
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Java2网络编程基础》 第九章 Swing.ppt
- 《Java2网络编程基础》 第八章 Applet和图形编程.ppt
- 《Java2网络编程基础》 第七章 AWT事件模型.ppt
- 《Java2网络编程基础》 第六章 GU编程.ppt
- 《Java2网络编程基础》 第五章 Java异常和垃圾收集.ppt
- 《Java2网络编程基础》 第四章 类的高级特性.ppt
- 《Java2网络编程基础》 第三章 类,对象和包.ppt
- 《Java2网络编程基础》 第二章 Java编程基础.ppt
- 《Java2网络编程基础》 第一章 JAVAJava编程简介.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第四章 需求分析.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第十章 面向对象方法学引论.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第六章 详细设计.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第八章 软件测试.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第五章 总体设计.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第二章 软件生命周期及软件开发模式.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第九章 软件维护.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第三章 计算机系统工程.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第七章 编码.ppt
- 湖北汽车工业学院:《软件工程》课程教学资源(PPT课件)第一章 软仵危机与软件工程.ppt
- 《Thinking in Java》中文版 致读者.pdf
- 《精品JAVA专业版》 第十一章 JDBC.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第一章 绪论、第二章 微处理器的工作模式.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第三章 微处理器的实模式软件结构及程序设计.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第四章 保护模式软件结构.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第五章 半导体存储器接口技术.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第六章 微型计算机系统总线.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第七章 输入输出接口技术.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第八章 中断技术.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第九章 串行通信接口及其应用.ppt
- 《微机原理》课程电子教案(PPT课件讲稿)第十章 数据采集系统及其应用.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)目录.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第十章 指针.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第十一章 结构体与共用体.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第十二章 位运算.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第十三章 文件.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第十四章 C++对e的扩充.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第十五章 e++面向对象基础.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第一章 程序设计基础知识.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第二章 语言概述.ppt
- 《C/C++程序设计基础》课程教学资源(PPT课件讲稿)第三章 数据类型、运算符和表达式.ppt