目录

  • 1 第1部分  Java基础语法
    • 1.1 第1章认识Java语言
    • 1.2 第2章Java语言基础
    • 1.3 从C/C++到Java
    • 1.4 Java开发包JDK
    • 1.5 Java程序和Java虚拟机
    • 1.6 Java集成开发环境
    • 1.7 本章学习要点
    • 1.8 本章习题
    • 1.9 数据类型
    • 1.10 变量与常量
    • 1.11 运算符与表达式
    • 1.12 算法结构与控制语句
    • 1.13 本章学习要点
    • 1.14 本章习题
  • 2 第2部分面向对象程序设计方法
    • 2.1 第3章面向对象程序设计之一
    • 2.2 第4章面向对象程序设计之二
    • 2.3 面向对象程序设计方法概述
    • 2.4 面向对象程序的设计过程
    • 2.5 类与对象的语法细则
    • 2.6 数组
    • 2.7 Java程序文件的组织
    • 2.8 本章学习要点
    • 2.9 本章习题
    • 2.10 重用类代码
    • 2.11 类的组合
    • 2.12 类的继承与扩展
    • 2.13 对象的替换与多态
    • 2.14 抽象类与接口
    • 2.15 4种特殊的类定义形式
    • 2.16 本章学习要点
    • 2.17 本章习题
  • 3 第3部分Java应用程序开发
    • 3.1 第5章Java基础类库
    • 3.2 第6章图形用户界面程序
    • 3.3 第7章输入输出流
    • 3.4 第8章多线程并发编程
    • 3.5 第9章网络编程
    • 3.6 第10章数据库编程
    • 3.7 数学类Math
    • 3.8 字符串类
    • 3.9 基本数据类型的包装类
    • 3.10 Java语言的根类Object
    • 3.11 系统类System
    • 3.12 异常处理
    • 3.13 泛型与数据集合类
    • 3.14 枚举类型
    • 3.15 Java源程序中的注释和注解
    • 3.16 本章学习要点
    • 3.17 本章习题
    • 3.18 图形用户界面
    • 3.19 编写图形用户界面程序
    • 3.20 响应用户操作
    • 3.21 常用图形组件
    • 3.22 对话框
    • 3.23 鼠标事件和键盘事件
    • 3.24 Java小应用程序类Applet
    • 3.25 本章学习要点
    • 3.26 本章习题
    • 3.27 Java输入输出流
    • 3.28 标准I/O
    • 3.29 文件及文件I/O
    • 3.30 序列化及二进制文件I/O
    • 3.31 文本处理
    • 3.32 图像处理
    • 3.33 声音处理
    • 3.34 本章学习要点
    • 3.35 本章习题
    • 3.36 多线程并发程序
    • 3.37 多线程编程及并发调度
    • 3.38 多线程之间的并发与互斥
    • 3.39 多线程之间的协同
    • 3.40 定时执行的线程
    • 3.41 swing框架中的线程
    • 3.42 本章学习要点
    • 3.43 本章习题
    • 3.44 计算机网络的基本原理
    • 3.45 网络服务与网络资源
    • 3.46 程序之间的网络通信
    • 3.47 基于UDP的网络通信
    • 3.48 本章学习要点
    • 3.49 本章习题
    • 3.50 数据库系统的基本原理
    • 3.51 JDBC数据库编程代码框架
    • 3.52 JDBC数据库编程实验
    • 3.53 开启自己的Java探索之旅
    • 3.54 本章学习要点
    • 3.55 本章习题
  • 4 教学文件
    • 4.1 课程简介
    • 4.2 课程标准
    • 4.3 整体设计
    • 4.4 学习指南
  • 5 Java语言程序设计基础
    • 5.1 单元设计_Java语言程序设计基础
    • 5.2 搭建开发环境
    • 5.3 Java基础
    • 5.4 开发环境的搭建
    • 5.5 Java基础练习
    • 5.6 Java的发展历史
    • 5.7 Java的运行机制
    • 5.8 搭建开发环境
    • 5.9 开发Eclipse项目
    • 5.10 Java的标识符
    • 5.11 Java的数据类型
    • 5.12 变量和常量
    • 5.13 数据类型转换
    • 5.14 注释
    • 5.15 运算符和表达式
    • 5.16 程序常用的结构
    • 5.17 单分支结构
    • 5.18 双分支结构
    • 5.19 多分支结构
    • 5.20 循环结构
第8章多线程并发编程

一、教学目标:

  1. 准确理解多线程编程中的3个要素。

  2.  可以运行的算法对象,算法对象具有run()方法。

  3.  运行算法对象的线程对象,线程对象是Thread类的对象。

  4.  被多个线程共享的数据对象,操作这些数据对象时需要启用同步(synchronized)机制,多线程协同还需要使用等待唤醒(waitnotify)机制。

二、教学重点:

  1. 多线程是一种高级编程技术。多线程可以提高CPU使用率,改善用户体验。在多核或多CPU计算机系统上,使用多线程可以明显提高程序的运行速度。

  2. 运行的算法对象,算法对象具有run()方法。

  3.  运行算法对象的线程对象,线程对象是Thread类的对象。

  4. 被多个线程共享的数据对象,操作这些数据对象时需要启用同步(synchronized)机制,多线程协同还需要使用等待唤醒(waitnotify)机制。

三、教学难点:

  1. 运行算法对象的线程对象,线程对象是Thread类的对象。

  2. 被多个线程共享的数据对象,操作这些数据对象时需要启用同步(synchronized)机制,多线程协同还需要使用等待唤醒(waitnotify)机制。

  3. 多线程编程比较复杂,学习时应仔细阅读并理解本章提供的示例程序,然后尝试自己重写一遍。




第8章 多线程并发编程

        计算机可以同时运行多个程序,这样就能在同一台计算机上同时做不同的事情

        在单个CPU上同时运行多个程序将采用分时time-sharing)技术

        CPU的运行时间划分成很小的时间片timeslice),然后按时间片轮流执行各程序

        如果程序在用完一个时间片之后未能完成执行,则被暂时挂起,等待下一轮继续执行

        采用分时技术同时执行多个程序的方式被称为并发concurrency

        操作系统全权负责管理和调度多个程序的并发执行,程序员在编程时不需要做什么事情

        本章将学习的是多线程并发编程,其内容是如何让单个程序同时做多件事情。与单线程相比,采样多线程的程序在多核CPU计算机上的运行速度会成倍提高


8.1 多线程并发程序

1、进程与线程

2、单线程串行程序

3、多线程并发程序


8.2 多线程编程及并发调度

1、算法

2、线程

3、多线程的并发调度 


8.3 多线程之间的并发与互斥

1、单线程售票服务演示程序

2、多线程售票服务演示程序

3、多线程中的互斥操作

4、Java同步机制的实现原理


8.4 多线程之间的协同

1、守护代码块

2、Java等待唤醒机制

3、多线程“生产者消费者”模式编程


8.5 定时执行的线程

1、本地日期时间类LocalDateTime

2、定时执行的线程


8.6 swing框架中的线程

1、事件分发线程

2、在线程中操作图形组件

3、通过事件分发线程操作图形组件

4、多线程并发绘图


本章学习要点

多线程是一种高级编程技术。多线程可以提高CPU使用率,改善用户体验。在多核或多CPU计算机系统上,使用多线程可以明显提高程序的运行速度

要准确理解多线程编程中的三个要素

        可以运行的算法对象,算法对象具有run()方法

        运行算法对象的线程对象,线程对象是Thread类的对象

        被多个线程共享的数据对象,操作这些数据对象时需要启用同步(synchronized)机制,多线程协同时还需要使用等待-唤醒(wait-notify)机制

多线程编程比较复杂,学习时应仔细阅读理解本章提供的演示程序,然后尝试自己重写一遍