AvA 多线程编程特术(1) 辽宁经济职业技术学院信息系 硕士、副教授陈英 JAVA
多线程编程技术(1) 辽宁经济职业技术学院信息系 硕士、副教授 陈英
AvA 序言 ○随着计算机技术的飞速发展,个人计算机上 的操作系统也纷纷采用多任务和分时设计。 将早期只有大型计算机才具有的系统特性, 带给了个人计算机。 个进程就是一个执行中的程序,而每一个 进程都有自己独立的一块空间、一组系统资 源。 ○一般在同一时间内执行多个程序的操作系统, 都有进程的概念。 ○使用多任务运行特性时,仿佛是在同一个时 间内运行多个程序。 JAVA
序言 随着计算机技术的飞速发展,个人计算机上 的操作系统也纷纷采用多任务和分时设计。 将早期只有大型计算机才具有的系统特性, 带给了个人计算机。 一个进程就是一个执行中的程序,而每一个 进程都有自己独立的一块空间、一组系统资 源。 一般在同一时间内执行多个程序的操作系统, 都有进程的概念。 使用多任务运行特性时,仿佛是在同一个时 间内运行多个程序
AvA 序言 ○多线程程序扩展了多任务操作的概念,它将 多任务操作降低一级来运行,那就是各个程 序似乎是在同一个时间内执行多个任务 每个任务通常称为一个线程,它是控件的线 程的简称。能够同时运行多个线程的程序称 为多线程程序。 每个进程都有它自己的一组完整的变量,而 线程则共享相同的数据。 目前,所有最新的操作系统都支持多线程运 JAVA
序言 多线程程序扩展了多任务操作的概念,它将 多任务操作降低一级来运行,那就是各个程 序似乎是在同一个时间内执行多个任务。 每个任务通常称为一个线程,它是控件的线 程的简称。能够同时运行多个线程的程序称 为多线程程序。 每个进程都有它自己的一组完整的变量,而 线程则共享相同的数据。 目前,所有最新的操作系统都支持多线程运 行
理解线程 单线程 读块1计算1写入1读块2计算2写入2 程从一个文件中读取许多代码块 读块1计算1写入1 对每一块数据执行一些计算 把计算结果写入另一个文件 读块2计算2写入2 读块3^计算3写入3 ○ A旷间 多线 线程1线程2线程3
单线程 多线 程 线程1 读块1 计算1 写入1 读块2 计算2 写入2 读块1 计算1 写入1 读块2 计算2 写入2 读块3 计算3 写入3 线程1 线程2 线程3 时间 从一个文件中读取许多代码块 对每一块数据执行一些计算 把计算结果写入另一个文件 程 序 理解线程
AvA 理解线程——多线程 线程1 读块1计算1写入1读块4计算4 线程2 读块2计算2写入2读块5 线程3 读块3计算3写入3 JAVA
理解线程——多线程 线程1 读块1 计算1 写入1 读块4 计算4 读块2 计算2 写入2 读块5 读块3 计算3 写入3 线程2 线程3 时间
理解线程 AvA ○Java程序通过流控制来执行程序流,程序中 单个顺序的流控制称为线程。 多线程指的是在单个程序中可以同时运行多 个不同的线程以执行不同的任务。 多线程的优势: 1)减轻编写交互频繁、涉及面多的程序的困难。 2)程序的吞吐量会得到改善。 3)由多个处理器的系统,可以并发运行不同的线程。 否则,任何时刻只有一个线程在运行。) JAVA
理解线程 Java程序通过流控制来执行程序流,程序中 单个顺序的流控制称为线程。 多线程指的是在单个程序中可以同时运行多 个不同的线程以执行不同的任务。 多线程的优势: 1) 减轻编写交互频繁、涉及面多的程序的困难。 2) 程序的吞吐量会得到改善. 3) 由多个处理器的系统,可以并发运行不同的线程。 (否则,任何时刻只有一个线程在运行。)
AvA 线程与进裎的区别 进程是正在执行的程序。 个或更多的线程构成了一个进程 o多个进程的内部数据和状态都是完全独立 的,而多线程是共享一块内存空间和一组系 统资源,有可能互相影响 线程本身的数据通常只有寄存器数据,以 及一个程序执行时使用的堆栈,所以线程 的切换比进程切换的负担要小。 个线程由三个主要部分组成。 JAVA
线程与进程的区别 进程是正在执行的程序。 一个或更多的线程构成了一个进程。 多个进程的内部数据和状态都是完全独立 的,而多线程是共享一块内存空间和一组系 统资源,有可能互相影响. 线程本身的数据通常只有寄存器数据,以 及一个程序执行时使用的堆栈,所以线程 的切换比进程切换的负担要小。 一个线程由三个主要部分组成
AvA 线程的构成 虚拟CPU封装在 java.long Thread的类中 ○虚拟CPU执行的代码,传递给 Thread的类。 虚拟CPU处理的数据,传递给 Thread的类。 CPU 处理机 个虚拟 处理机 代码 数据 JAVA
线程的构成 虚拟CPU封装在java.long.Thread的类中。 虚拟CPU执行的代码,传递给Thread的类。 虚拟CPU处理的数据,传递给Thread的类。 CPU 处理机 代码 数据 一个虚拟 处理机
AvA 理解线程 ○对线程的综合支持是Java技术的一个重要 特色。它提供了 thread类、监视器和条件 变量的技术。 在Java编程中,虚拟处理机封装在 Thread类的一个实例里。构造线程时, 定义其上下文的代码和数据是由传递给它 的构造函数的对象指定的。 JAVA
理解线程 对线程的综合支持是Java技术的一个重要 特色。它提供了thread类、监视器和条件 变量的技术。 在 Java 编程中 , 虚拟处理机封装在 Thread类的一个实例里。构造线程时, 定义其上下文的代码和数据是由传递给它 的构造函数的对象指定的
创速多线程 AvA public class mythread extends applet implements Runnable (小应用或已经是某个类的子类时) 继承类 TThread public class mythread extends Thread 实现 Runnable更符合面向对的 1)单继承 Thread类自身实现了 Runnable接口,所以 致性 可以通过扩展 Thread 扩展 Thread代码更简单(美而不 是实现 Runnable来创建线程。 JAVA
创建多线程 public class mythread extends Applet implements Runnable (小应用或已经是某个类的子类时) 继承类Thread public class mythread extends Thread 实现Runnable更符合面向对象的设计 1) 单继承 2) 一致性 扩展Thread代码更简单 Thread类自身实现了 Runnable接口,所以 可以通过扩展Thread 类而不是实现 Runnable来创建线程