《Java程序设计》课程教学课件(PPT讲稿)07 Java线程

1 Java 多线程 ZUST Software Institute

2 Java线程 1. 概述 2. 线程的创建 ◼ 两种方式 3. 线程的同步 1. synchronized 2. wait()/notifyAll()/notify() 4. 线程的生命周期

程序、进程和线程 ◼ 程序是计算机指令的集合,它以文件的形式存储在磁 盘上。 ◼ 进程:是一个程序在其自身的地址空间中的一次执行 活动。 ◼ 进程是资源申请、调度和独立运行的单位,因此,它 使用系统中的运行资源;而程序不能申请系统资源, 不能被系统调度,也不能作为独立运行的单位,因此, 它不占用系统的运行资源。 ◼ 线程:是进程中的一个单一的连续控制流程。一个进 程可以拥有多个线程。 ◼ 线程又称为轻量级进程,它和进程一样拥有独立的执 行控制,由操作系统负责调度,区别在于线程没有独 立的存储空间,而是和所属进程中的其它线程共享一 个存储空间,这使得线程间的通信远较进程简单

单线程程序与多线程程序 单线程 程序 多线程 程序 一 个 线 程 两个 线程

5 概述 ◼ 进程(Process) ◼ 程序(Program)的一次动态执行过程, 占用特定 的地址空间 ◼ 在某种程度上相互隔离的、独立运行的程序 ◼ 多任务(Multitasking)操作系统→将CPU时间动 态地划分给每个进程,操作系统同时执行多个 进程,每个进程独立运行 ◼ 进程的查看 ◼ Windows系统: Ctrl+Alt+Del ◼ Unix系统: ps or top

6 概述 ◼ 线程(Thread) ◼ 线程是进程中一个“单一的连续控制流程” (a single sequential flow of control)/执行路径 ◼ 一个进程可拥有多个并行的(concurrent)线程 ◼ 一个进程中的线程共享相同的内存单元/内存 地址空间→可以访问相同的变量和对象,而且 它们从同一堆中分配对象→通信、数据交换、 同步操作 ◼ 轻量级进程(lightweight process)

7 概述 ◼ Java语言中的线程 ◼ 大多数现代的操作系统都支持线程 ◼ 第一个在语言本身中显性地包含线程的主流编 程语言,它没有把线程化看作是底层操作系统 的工具 ◼ 每个 Java 程序都至少有一个线程—主线程 ◼ 当一个 Java 程序启动时,JVM 会创建主线程, 并在该线程中调用程序的main()方法 ◼ JVM还创建了其它线程,如垃圾收集(garbage collection)

8 概述 ◼ 多线程(MultiThreading)语言 ◼ java.lang.Thread类 ◼ java.lang.Runnable接口 ◼ 为什么? (用途) ◼ Client/Server设计中的服务器端, 如每个用户 请求建立一个线程 ◼ 图形用户界面(GUI)的设计中提高事件响应的 灵敏度 ◼ 从提高程序执行效率的考虑 ◼ 利用多处理器系统 ◼ 执行异步或后台处理等

9 ◼ 初探线程 public class SimpleThread extends Thread { public SimpleThread(String str) { super(str); } public void run() { System.out.println(getName()+“线程开始!"); for (int i = 0; i < 8; i++) { System.out.println(i + " " + getName()); try { sleep((long)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println(getName() + " 线程运行结束!"); } } 概述 public class TwoThreadsDemo { public static void main (String[] args) { new SimpleThread(“A").start(); new SimpleThread(“B").start(); } } java.lang.Thread public static void sleep(long millis) throws InterruptedException Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds

10 Java线程 1. 概述 2. 线程的创建 ◼ 两种方式 3. 线程的同步 1. synchronized 2. wait()/notifyAll()/notify() 4. 线程的生命周期
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Java程序设计》课程教学课件(PPT讲稿)06 Java文件输入输出.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)05 Java异常处理.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象5-面向对象特征(3/3).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象4-面向对象特征(2/3).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象3-面向对象特征(1/3).pptx
- 清华大学出版社:《计算机操作系统教程》习题解答与实验指导(教材PDF电子版,第2版,编著:张尧学).pdf
- 《汇编语言与接口技术》课程教学资源(作业习题)汇编语言与接口技术练习题(答案).doc
- 《汇编语言与接口技术》课程教学资源(作业习题)汇编语言与接口技术练习题(题目).doc
- 《汇编语言与接口技术》课程教学资源(PPT课件)第7章 串并行接口技术.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第8章 中断和DMA技术.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第5章 软件接口技术.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第6章 存储器技术.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第2章 80x86微处理器.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第4章 80x86汇编语言程序设计.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第1章 微型计算机概述.ppt
- 《汇编语言与接口技术》课程教学资源(PPT课件)第3章 80x86指令系统和寻址方式.ppt
- 《汇编语言与接口技术》课程教学大纲 Assembly Language and Interface Technology.doc
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第6章 应用层.ppt
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第5章 运输层.ppt
- 浙江科技大学:《计算机网络》课程教学资源(PPT课件)第7章 网络安全.ppt
- 《Java程序设计》课程教学课件(PPT讲稿)08 Java网络编程.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)09 Java数据库编程(1/2).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)09 Java数据库编程(2/2).pptx
- 《Java程序设计》课程教学课件(PPT讲稿)0 1Java概述.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)02 Java程序设计基础1—运算符和表达式.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)03 Java程序设计基础2—数组.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)03 Java程序设计基础3—程序流程控制.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象1-软件开发周期简介.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)04 Java面向对象2-面向对象程序设计基础.pptx
- 《Java程序设计》课程教学课件(PPT讲稿)Coding_Standard_Java.pptx
- 《数据结构》课程教学大纲 Data Structure.doc
- 《数据结构》课程教学课件(PPT讲稿)第一章 绪论.ppt
- 《数据结构》课程教学课件(PPT讲稿)第三章 栈和队列.ppt
- 《Java基础入门》课程电子教案(PPT教学课件)第1章 Java开发入门.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第2章 Java编程基础.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第3章 面向对象(上).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第4章 面向对象(下).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第5章 异常.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第6章 Java API.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第7章 集合.pptx
