201711671110 《Java程序设计》第十二章学习总结
教材学习内容总结
12.1进程与线程
进程:进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程。
操作系统:管理计算机系统中的进程。现代操作系统可以同时管理计算机系统中的多个进程。
线程与进程:线程是比进程更小的执行单位,一个进程可以产生多个线程。线程间可以共享进程中的某些单元(包括代码与数据),并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。
12.2Java中的线程
Java的多线程机制:指一个应用程序中同时存在几个执行体,按几条不同的执行线索共同工作的情况。
主线程与其他线程:主线程执行main方法,在main方法的执行中再创建的线程,就称为其他线程。
线程的状态:
- 新建。当一个thread类或子类的对象被声明并创建时,新生的线程对象处于新建状态。
- 运行。线程创建之后就具备了运行的条件,一旦轮到它来享用CPU资源时,即JVM将CPU使用权切换给该线程时,次线程就可以脱离创建它的主线程独立开始自己的生命周期了。
- 中断。中断有四种原因。
- 死亡。处于死亡状态的线程不具有继续运行的能力。
同一程序在不同的计算机运行或在同一计算机反复运行的结果不尽相同,输出结果依赖当前CPU资源的使用情况。
线程的优先级:分为10个等级,分别用thread类中的类常量表示,常数在1-10之间。如果没有明确设置优先级别,默认为5。线程的优先级可以通过setPriority(int grade)方法调整,grade在1-10之间。有些操作系统只能识别1、5、10三个级别。
线程调度:使高优先级的线程能始终运行,一旦时间片有空闲,则使具有同等优先级的线程以轮流的方式顺序使用时间片。
12.3thread类与线程的创建
目标对象与线程的关系:
- 目标对象和线程完全解耦。
- 目标对象组合线程(弱解耦)。
12.4线程的常用方法
- start()
- Run()
- Sleep(int millsecond)
- isAlike()
- CurrentThread()
- Interrupt()
12.5线程同步
线程同步:指若干个线程都需要使用一个synchronized(同步)修饰的方法。
线程同步机制:当一个线程A使用synchronized方法时,其他线程想使用这个方法必须等待,直到A线程使用完该方法。
12.7线程联合
线程联合:一个线程在占有CPU资源期间,可以让其他线程调用join()和本线程联合。
教材学习中的问题和解决过程
本章内容由学生自学,内容较多,定义也多,需要反复看才能记住、理解。并且要将课本的例子敲一遍,才能更好地理解这些概念。
代码调试中的问题和解决过程
敲代码的过程要认真仔细。
其他(感悟、思考等,可选)
概念是程序的基础,程序是概念的实践,两者结合在一起才能把概念理解得更透彻,然后写出完整的代码。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 |
目标 | 5000行 | 30篇 | 400小时 |
|
第一周 | 12/12 | 1/1 | 4/4 |
|
第二周 | 29/41 | 0/1 | 4/8 |
|
第三周 | 78/119 | 0/1 | 7/15 |
|
第四周 | 50/169 | 1/2 | 4/19 |
|
第五周 | 458/627 | 1/3 | 9/28 | 完善例题 |
第六周 | 150/777 | 1/4 | 5/33 |
|
第七周 | 368/1145 | 1/5 | 8/41 |
|
第十二章 | 480/1625 | 1/6 | 12/53 |
|
参考资料
Java2使用教程(第5版)