北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第10章 多线程

第10章多线程 线程( thread)是指程序中完成一个任务的从头到 尾的执行线索。到现在为止,前面所涉及的程序都 是单线程运行的。但现实世界中的很多过程其实具 备多条线索同时执行的特点。如 Internet上的服务 器可能需要同时响应多个客户机的请求。 多线程是指同时存在几个执行体,按几条不同的执 行线索共同工作的情况。Java语言允许在一个程序 中并发地运行多个线程,使得编程人员可以很方便 地开发具有多线程功能、能同时处理多个任务的功 能强大的应用程序。虽然说线程是同步执行的,但 在实际的情况是单处理器的计算机在任何给定的时 刻只能执行多个线程中的一个。 多线程可以使程序反应更快、交互性更强,并能提 高执行效率
第10章 多线程 线程(thread)是指程序中完成一个任务的从头到 尾的执行线索。到现在为止,前面所涉及的程序都 是单线程运行的。但现实世界中的很多过程其实具 备多条线索同时执行的特点。如Internet上的服务 器可能需要同时响应多个客户机的请求。 多线程是指同时存在几个执行体,按几条不同的执 行线索共同工作的情况。Java语言允许在一个程序 中并发地运行多个线程,使得编程人员可以很方便 地开发具有多线程功能、能同时处理多个任务的功 能强大的应用程序。虽然说线程是同步执行的,但 在实际的情况是单处理器的计算机在任何给定的时 刻只能执行多个线程中的一个。 多线程可以使程序反应更快、交互性更强,并能提 高执行效率

第10章多线程 ■Java中的线程 ■线程的生命周期 ■线程的优先级和调度管理 ■扩展 Thread类创建线程 ■ Runnable接口 ■常用方法 ■线程同步 ■线程组
第10章 多线程 ◼Java中的线程 ◼线程的生命周期 ◼线程的优先级和调度管理 ◼扩展Thread类创建线程 ◼Runnable接口 ◼常用方法 ◼线程同步 ◼线程组

101]ava中的线程 ■并发现象在现实生活中大量存在 人体(消化、运动) ■计算机(同时运行多中程序) ■多线程—在一个程序中实现并发 ■编程语言一般提供了串行程序设计的方法 ■计算机的并发能力由操作系统提供 Java在语言级提供多线程并发的概念
◼ 并发现象在现实生活中大量存在 ◼ 人体(消化、运动) ◼ 计算机(同时运行多中程序) ◼ 多线程——在一个程序中实现并发 ◼ 编程语言一般提供了串行程序设计的方法 ◼ 计算机的并发能力由操作系统提供 ◼ Java在语言级提供多线程并发的概念 10.1 Java中的线程

101]ava中的线程 以前所编写的程序,每个程序都有一个入口、一个出口以 及一个顺序执行的序列,在程序执行过程中的任何指定时刻, 都只有一个单独的执行点 事实上,在单个程序内部是可以在同一时刻进行多种运算 的,这就是所谓的多线程(这与多任务的概念有相似之处)。 个单独的线程和顺序程序相似,也有一个入口、一个出 口以及一个顺序执行的序列,从概念上说,一个线程是一个 程序内部的一个顺序控制流。 线程并不是程序,它自己本身并不能运行,必须在程序中 运行。在一个程序中可以实现多个线程,这些线程同时运行, 完成不同的功能
以前所编写的程序,每个程序都有一个入口、一个出口以 及一个顺序执行的序列,在程序执行过程中的任何指定时刻, 都只有一个单独的执行点。 事实上,在单个程序内部是可以在同一时刻进行多种运算 的,这就是所谓的多线程(这与多任务的概念有相似之处)。 一个单独的线程和顺序程序相似,也有一个入口、一个出 口以及一个顺序执行的序列,从概念上说,一个线程是一个 程序内部的一个顺序控制流。 线程并不是程序,它自己本身并不能运行,必须在程序中 运行。在一个程序中可以实现多个线程,这些线程同时运行, 完成不同的功能。 将军令 多线程 10.1 Java中的线程

101]ava中的线程 A Thread A Program TwO Threads A Program
10.1 Java中的线程

101]ava中的线程 从逻辑的观点来看,多线程意味着一个程序的多行语句同 时执行,但是多线程并不等于多次启动一个程序,操作系统 也不会把每个线程当作独立的进程来对待: 两者的粒度不同,是两个不同层次上的概念。进程是由 操作系统来管理的,而线程则是在一个程序(进程)内。 不同进程的代码、内部数据和状态都是完全独立的,而 个程序内的多线程是共享同一块内存空间和同一组系统 资源,有可能互相影响 线程本身的数据通常只有寄存器数据,以及一个程序执 行时使用的堆栈,所以线程的切换比进程切换的负担要小
从逻辑的观点来看,多线程意味着一个程序的多行语句同 时执行,但是多线程并不等于多次启动一个程序,操作系统 也不会把每个线程当作独立的进程来对待: 两者的粒度不同,是两个不同层次上的概念。进程是由 操作系统来管理的,而线程则是在一个程序(进程)内。 不同进程的代码、内部数据和状态都是完全独立的,而 一个程序内的多线程是共享同一块内存空间和同一组系统 资源,有可能互相影响。 线程本身的数据通常只有寄存器数据,以及一个程序执 行时使用的堆栈,所以线程的切换比进程切换的负担要小。 10.1 Java中的线程

101]ava中的线程 ■进程:程序的一次执行 ■程序代码 程序数据 程序资源 线程:进程中程序代码的一个执行序列。 程序调用堆栈 ■线程局部变量 ■可共享访问进程中的数据和资源 操作系统按线程来调度程序的执行
◼ 进程:程序的一次执行。 ◼ 程序代码 ◼ 程序数据 ◼ 程序资源 ◼ 线程:进程中程序代码的一个执行序列。 ◼ 程序调用堆栈 ◼ 线程局部变量 ◼ 可共享访问进程中的数据和资源 ◼ 操作系统按线程来调度程序的执行 10.1 Java中的线程

101]ava中的线程 文件各种系统资源输入输出装置 文件各种系统资源输入输出装置 数据区段三 数据区段 程序区段 程序区段 只有一个地方在执行 同时有数个地方在执行 传统的进程 多线程的任务
文件 各种系统资源 输入输出装置 数据区段 程序区段 只有一个地方在执行 文件 各种系统资源 输入输出装置 数据区段 程序区段 同时有数个地方在执行 传统的进程 多线程的任务 10.1 Java中的线程

101]ava中的线程 多线程的优势: 多线程编程简单,效率高(能直接共享数据和资源,多进程不能) ■适合于开发服务程序(如Web服务,聊天服务等) ■适合于开发有多种交互接口的程序(如聊天程序的客户端,网络下 载工具) 适合于有人机交互又有计算量的程序(如字处理程序Word, Excel) 减轻编写交互频繁、涉及面多的程序的困难(如监听网络端口) 程序的吞吐量会得到改善(同时监听多种设备,如网络端口、串口、并口 以及其他外设) 有多个处理器的系统,可以并发运行不同的线程(否则,任何时刻只有 一个线程在运行)
多线程的优势: ◼ 多线程编程简单,效率高(能直接共享数据和资源,多进程不能) ◼ 适合于开发服务程序(如Web服务,聊天服务等) ◼ 适合于开发有多种交互接口的程序(如聊天程序的客户端,网络下 载工具) ◼ 适合于有人机交互又有计算量的程序(如字处理程序Word,Excel) 减轻编写交互频繁、涉及面多的程序的困难(如监听网络端口) 程序的吞吐量会得到改善(同时监听多种设备,如网络端口、串口、并口 以及其他外设) 有多个处理器的系统,可以并发运行不同的线程(否则,任何时刻只有 一个线程在运行) 10.1 Java中的线程

101]ava中的线程 虽然各种操作系统(Unix/ Linux、 Windows系列等)都 支持多线程,但若要用C、C++或其他语言编写多线程程序 是十分困难的,因为它们对数据同步的支持不充分。 对多线程的综合支持是Java语言的一个重要特色,它提 供了 Thread类来实现多线程。在Java中,线程可以认为是由 三部分组成的: 虚拟CPU,封裝在 java. langThread类中,它控制着整 个线程的运行; 执行的代码,传递给 Thread类,由 Thread类控制顺序 执行; 处理的数据,传递给 Thread类,是在代码执行过程中 所要处理的数据
虽然各种操作系统(Unix/Linux、Windows系列等)都 支持多线程,但若要用C、C++或其他语言编写多线程程序 是十分困难的,因为它们对数据同步的支持不充分。 对多线程的综合支持是Java语言的一个重要特色,它提 供了Thread类来实现多线程。在Java中,线程可以认为是由 三部分组成的: ▪ 虚拟CPU,封装在java.lang.Thread类中,它控制着整 个线程的运行; ▪ 执行的代码,传递给Thread类,由Thread类控制顺序 执行; ▪ 处理的数据,传递给Thread类,是在代码执行过程中 所要处理的数据。 10.1 Java中的线程
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第11章 输入输出流及文件.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第12章 Java的网络编程.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第2章 标识符、关键字和数据类型.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第3章 运算符、表达式和语句.ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第七章 文件系统(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第六章 存储管理(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第五章 处理机管理(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第一章 绪论(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第二章 作业管理和用户接口(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第三章 用户管理和配置管理(向勇).ppt
- 清华大学:《操作系统》课程教学资源(PPT课件)第四章 进程管理(向勇).ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第四章 半导体存储器(邱银安).ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第二章 微型计算机中的数制与编码(邱银安).ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第一章 微型计算机的系统结构与工作原理(邱银安).ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第三章 8086微处理器(邱银安).ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第十一章 并行I/O接口(邱银安).ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第六章 汇编语言程序设计(邱银安).ppt
- 《微机原理与接口技术》课程教学资源(PPT课件)第五章 8086指令系统(邱银安).ppt
- 《C语言程序设计》课程教学资源:目录(袁宁).ppt
- 《C语言程序设计》课程教学资源:课程介绍.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第9章 Applet基础.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第八章 Java Swing与事件处理.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第七章 图形编程.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第6章 异常处理.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第5章 继承与多态.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第4章 对象和类.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第3章 字符串和数组.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第2章 Java基本编程结构.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第1章 Java概述.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第7章 图形用户界面程序设计入门(7.1)图形用户界面.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第7章 图形用户界面程序设计入门(7.2)事件驱动程序.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第7章 图形用户界面程序设计入门(7.3)创建图形用户界面.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第7章 图形用户界面程序设计入门(7.4)菜单、工具栏、对话框.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第1章 Java 语言入门.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第6章 异常处理.ppt
- 北京大学计算机系:《Java 2实用教程》(第3版)PPT教学课件 第4章 对象和类.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第10章 JDBC链接数据库.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第11章 Java异常处理.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)第12章 Java I/O处理.ppt
- 机械工业出版社:《Java完全自学手册》教材电子教案(PPT课件讲稿)Java技术概览.ppt