一、教学目标:
准确理解多线程编程中的3个要素。
可以运行的算法对象,算法对象具有run()方法。
运行算法对象的线程对象,线程对象是Thread类的对象。
被多个线程共享的数据对象,操作这些数据对象时需要启用同步(synchronized)机制,多线程协同还需要使用等待唤醒(waitnotify)机制。
二、教学重点:
多线程是一种高级编程技术。多线程可以提高CPU使用率,改善用户体验。在多核或多CPU计算机系统上,使用多线程可以明显提高程序的运行速度。
运行的算法对象,算法对象具有run()方法。
运行算法对象的线程对象,线程对象是Thread类的对象。
被多个线程共享的数据对象,操作这些数据对象时需要启用同步(synchronized)机制,多线程协同还需要使用等待唤醒(waitnotify)机制。
三、教学难点:
运行算法对象的线程对象,线程对象是Thread类的对象。
被多个线程共享的数据对象,操作这些数据对象时需要启用同步(synchronized)机制,多线程协同还需要使用等待唤醒(waitnotify)机制。
多线程编程比较复杂,学习时应仔细阅读并理解本章提供的示例程序,然后尝试自己重写一遍。
第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)机制
–多线程编程比较复杂,学习时应仔细阅读并理解本章提供的演示程序,然后尝试自己重写一遍