JAVA第十一周学习总结

201711671102 曾燃亮 《java程序设计》第11周学习总结

第十二章 多线程机制

一.进程与线程

1.操作系统与进程

进程是程序的一次动态执行过程。现代操作系统可以同时管理计算机系统的多个线程

2.进程与线程

线程不是进程,线程是比进程更小的执行单位,线程的中断与恢复可以更加节省系统的开销。

二.Java中的线程

1.java的多线程机制

多线程是指一个应用程序的同时存在几个执行体,按几条不同的执行线索共同工作的情况,他使得编程人员可以很方便的开发出具有多线程功能、能同时处理多个任务的功能强大的应用程序。虽然给人同时发生的感觉,但这是一种错觉,我们的计算机在任何给定的时刻只能执行线程中的一个。

2.主线程(main线程)

如果main方法中没有创建其他线程,那么当main方法执行完最后一个语句,即main方法返回时,JVM就会结束我们的java应用程序。如果main中创建有线程,那么JVM就要在主线程和其他线程之间轮流切换,保证每个每个相处都有机会使用CPU资源,JVM一直要等到java应用程中的所有线程结束后才结束java应用程序。

3.线程的状态与生命周期

java语言使用Thread类或其子类的对象来表示线程。

1)新建

2)运行

3)中断

4)死亡

4.线程调度与优先级

每个java线程的优先级都在常数1-10之间。如果没有明确地设置线程的优先级,每个新村的优先级都为常数5.

优先级可以调用setPriority(int grade)方法调整,如果参数grade不在1-10范围内,那么会产生一个IllegalArgumentException异常。

JVM的线程调度器的任务是使高优先级的线程能始终运行,也就是说,如果有ABCD四个线程,A和B的级别高于C和D,那么java调度器首先以轮流的方式执行A和B,到AB都执行完毕进入死亡状态,才会在CD之间轮流切换。

三.Thread类与线程的创建

1.使用Thread类的子类

在编写Thread类的子类是,需要重run()方法。

使用Thread类

创建线程的另一个途径就是用Thread类直接创建线程对象。使用Thread创建线程通常使用的构造方法是:Thread(Runnable target)。该构造方法中的参数是一个Runnable类型的接口,因此,在创建线程对象时必须向构造方法的参数传递一个实现Runnable接口类的实例。

3.目标对象与线程的关系

1)目标对象和线程完全解耦

2)目标对象组合线程(若耦合)

4.关于run方法启动的次数

四.线程的常用方法

1)start()

线程调用该方法将启动线程。注:线程调用start()方法之后,就不必再让线程调用start()方法,否则异常。

2)run()

定义线程对象被调度之后所执行的操作,都是系统自动调用而用户程序不得引用的方法。

3)sleep(int millsecond)

4)isAlive

5)currenttThread() 

返回当前正在使用CPU资源的线程

6)interrupt

五.线程同步

线程同步是指几个线程都需要用到同一个同步方法(用synchronized修饰的方法)。一个线程在使用同步方法时,可能根据问题的需要,不行使用wait()方法暂时让出CPU的使用权,以便其他线程使用这个同步方法。其他线程在使用这个同步方法时如果不需要等待,那么它用完这个同步方法的同时,应当执行notifyAll()方法通知所有由于使用这个同步方法而处于等待的线程结束等待。

六.协调同步线程

七.线程联合

八.GUI线程

九.计时器线程

十.守护线程

教材学习中的问题和解决过程

loading。。。。。

代码调试中的问题和解决过程

loading。。。。。

感悟

loading。。。。。

目标:5000行

第一周:35行

第二周:70行

第三、四周:200行

第五周:640行

第六周:150行

第七周:200行

第八周:300行

第九周:400行

第十周:570行

第十一周:600行

猜你喜欢

转载自blog.csdn.net/weixin_41936498/article/details/84892094