第十章线程、文件与串行化 本章将讨论有关线程及输入/输出的一些高 级话题。首先,讲述了线程和并发编程的基 本概念、模型和应用;然后阐述怎样从文件 中读取数据和将数据写入文件,其中包括 ava中最常见的输入/输出流;最后介绍了 对象串行化以及如何用对象流实现串行化
Java程序设计大学教程 第十章 线程、文件与串行化 本章将讨论有关线程及输入/输出的一些高 级话题。首先,讲述了线程和并发编程的基 本概念、模型和应用;然后阐述怎样从文件 中读取数据和将数据写入文件,其中包括 Java中最常见的输入/输出流;最后介绍了 对象串行化以及如何用对象流实现串行化
10.1多线程程序设计 ■多线程程序能够使程序的不同部分同时运行 ■现代操作系统和许多科学应用都是多线程程序。 使用多线程编程可以解决后台任务、并发操作 管理用户界面等编程难题,多线程程序设计因此 也越来越重要
Java程序设计大学教程 10.1 多线程程序设计 ◼ 多线程程序能够使程序的不同部分同时运行。 ◼ 现代操作系统和许多科学应用都是多线程程序。 ◼ 使用多线程编程可以解决后台任务、并发操作、 管理用户界面等编程难题,多线程程序设计因此 也越来越重要
10.1.1多任务、进程和线程 在多任务操作系统中,通常一个运行的程序实例称为一个 进程。进程也就是调入内存准备执行的程序。每个进程都 在自己分配的空间内独立运行,进程与进程之间互不干扰 ■线程是程序中的一个可执行语句序列,是一个单独的运行 过程。通常,每个进程至少有一个线程(即主线程)在执 行自己的地址空间中的代码。线程是进程内部执行的路径, 是操作系统分配CPU时间的基本实体。 ■每个进程都可以包含多个线程,它们可以同时独立地执行 进程的地址空间中的代码。进程的所有线程共享进程的地 址空间。在基于线程的多任务处理环境中,线程是最小的 执行单位
Java程序设计大学教程 10.1.1 多任务、进程和线程 ◼ 在多任务操作系统中,通常一个运行的程序实例称为一个 进程。进程也就是调入内存准备执行的程序。每个进程都 在自己分配的空间内独立运行,进程与进程之间互不干扰。 ◼ 线程是程序中的一个可执行语句序列,是一个单独的运行 过程。通常,每个进程至少有一个线程(即主线程)在执 行自己的地址空间中的代码。线程是进程内部执行的路径, 是操作系统分配CPU时间的基本实体。 ◼ 每个进程都可以包含多个线程,它们可以同时独立地执行 进程的地址空间中的代码。进程的所有线程共享进程的地 址空间。在基于线程的多任务处理环境中,线程是最小的 执行单位
10.1.1多任务、进程和线程 应用程序为了实现多任务并行处理,可以采用创 建多个进程和在单一进程中创建多线程两种方法, 但后者比前者更有效,这是因为: ■线程是轻量级的任务,线程的代码已经映射到了 进程的地址空间,而新进程的代码还需要载入内 存,所以系统创建和执行线程要比创建和执行进 程快得多;而进程是重量级的任务,需要更多的 管理开销和系统资源。 ■进程的所有线程共享进程的地址空间,并能够访 问进程的全局变量,因而线程之间的通信会更便 捷,线程间的转换也是低成本的
Java程序设计大学教程 10.1.1 多任务、进程和线程 应用程序为了实现多任务并行处理,可以采用创 建多个进程和在单一进程中创建多线程两种方法, 但后者比前者更有效,这是因为: ◼ 线程是轻量级的任务,线程的代码已经映射到了 进程的地址空间,而新进程的代码还需要载入内 存,所以系统创建和执行线程要比创建和执行进 程快得多;而进程是重量级的任务,需要更多的 管理开销和系统资源。 ◼ 进程的所有线程共享进程的地址空间,并能够访 问进程的全局变量,因而线程之间的通信会更便 捷,线程间的转换也是低成本的
10.1.2]ava线程模型 当]ava程序运行时,立即启动一个主线程( main thread), 它由我们熟悉的main方法开始执行。主线程可以起的作用是: 口启动程序进程 口负责创建其他子线程 口负责完成整个进程最后的各种清理和关闭任务 尽管主线程在程序启动时自动创建,但仍然可以通过 Thread. currentthread方法将其作为线程对象调用。要创建 个线程,可以通过实例化一个线程对象来实现。Java给出了两 种方式: 口继承 Thread类 口实现 Runnable接口
Java程序设计大学教程 10.1.2 Java线程模型 当Java程序运行时,立即启动一个主线程(main thread), 它由我们熟悉的main方法开始执行。主线程可以起的作用是: 启动程序进程 负责创建其他子线程 负责完成整个进程最后的各种清理和关闭任务 尽管主线程在程序启动时自动创建,但仍然可以通过 Thread.currentThread方法将其作为线程对象调用。要创建一 个线程,可以通过实例化一个线程对象来实现。Java给出了两 种方式: 继承Thread类 实现Runnable接口