等级考试二级JAVA考点分析之线程与对象串行化.doc

等级考试二级JAVA考点分析之线程与对象串行化.doc

ID:50889470

大小:45.95 KB

页数:5页

时间:2020-03-15

等级考试二级JAVA考点分析之线程与对象串行化.doc_第1页
等级考试二级JAVA考点分析之线程与对象串行化.doc_第2页
等级考试二级JAVA考点分析之线程与对象串行化.doc_第3页
等级考试二级JAVA考点分析之线程与对象串行化.doc_第4页
等级考试二级JAVA考点分析之线程与对象串行化.doc_第5页
资源描述:

《等级考试二级JAVA考点分析之线程与对象串行化.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、等级考试二级JAVA考点分析之线程与对象串行化8.1线程的概念考点:1线程的概念  1.线程  (1)线程是由表示程序运行状态的寄存器(包括程序计数器和堆栈)组成的。  (2)线程是程序执行过程中的某一时刻的状态。  (3)线程是一个用户级的实体,在内存中驻留在普通用户级方法可以直接访问的区域。  (4)每个线程都是一个能够独立执行自身指令的控制流程。  (5)操作系统通过对多线程的调度实现线程的并发执行。  (6)线程本身并不是一个程序而是运行于一个程序或者进程中。  (7)线程是个动态的概念,有其自身的产生、存在

2、和消亡的过程。  (8)Java通过在程序中提供多线程支持来提高线程的安全性。  (9)线程是程序中的一个单个执行流,多线程是程序中的多个执行流。  2.程序、线程和进程  (1)程序是一段静态的代码、是应用软件执行的蓝本。  (2)进程是程序的一次动态执行过程,包括程序加载、执行到结束。  (3)线程是比进程更小的执行单位,一个进程可以包含多个线程。  (4)进程是由代码、数据、内核状态和一组寄存器组成的。  (5)线程不包含进程的地址空间中的代码和数据。考点:2Java语言中的线程  (1)Java语言中的线程包

3、括3部分:虚拟CPU、该CPU执行的代码,以及代码所操作的数据。  (2)Java语言中代码和数据相互独立,代码可以在不同的线程之间共享,同样数据也可以在不同的线程之间共享。  (3)java.lang.Thread类定义了Java语言中的线程模型,用户可以通过该类创建、定义和控制自己的线程。8.2线程的创建考点:3线程的创建  在Java中,通过调用Thread类的构造方法来创建线程对象,线程执行的入口方法是run(),可以有两种提供run()方法的实现方式。  1.通过实现Runnable接口  创建过程Thre

4、ad类使用一个Runnable的实例作为其构造方法,该实例对象提供了线程体run(),线程从该run()方法开始执行。新建的线程必须通过调用线程的start()方法才能运行。  2.通过继承Thread类  Thread类本身实现了Runnable接口,因此Thread类含有run()方法。通过继承Thread类,并且重写其run()方法,来创建线程。  以上两种方法的比较如下:  (1)实现Runnable接口的方法符合面向对象的思想,实现了Runnable接口的类,可以很容易地继承其他的类。一般都提倡使用这种方法

5、。  (2)继承Thread类的方法,比较简单,可以直接调用线程的方法。可以视具体应用而定。8.3线程的调度与线程控制考点:4线程优先级和调度策略  线程的优先级,在Thread类中提供了3个静态常量:MIN_PRIORITY=1、MAX_PRIORITY=10、NORM_PRIORITY=5来控制线程的优先级,数值越大优先级越高。子线程继承父线程的优先级,主线程具有普通优先级。可以通过getPriority()方法获取线程的优先级,通过setPriority()设定线程的优先级。  线程调度是指:在单个CPU上以一

6、定策略控制多个线程的执行,这种策略是抢占式调度,简单地说,就是指高优先级的线程首先运行,低优先级的线程被高优先级线程抢占执行。在Java中,系统按照优先级的不同设置不同的线程等待池,首先运行高优先级等待池的线程,然后再运行低优先级等待池的线程。考点:5线程的控制要控制线程,可以使用Thread类提供的如下方法:(1)sleep(),一个线程通过调用此方法暂停运行线程一定时间(2)yield(),一个线程通过调用此方法使与其具有相同的优先级的线程有运行的机会。(3)join(),若在当前线程中执行th.join)方法,

7、则当前线程暂停运行,等待另一线程th运行结束,才恢复到可运行状态。(4)interrupt(),调用该方法可使线程从阻塞状态中恢复。(5)currentThread(),该方法是静态方法,用于返回当前线程的引用。(6)isAlive(),用于判断线程时候还处于活动状态。(7)stop(),强行终止线程。(8)suspend()和resume(),前者用于暂停一个线程,后者用于恢复该线程。8.4线程的同步考点:6对象的加锁及其操作  多线程并发操作时,由于各线程对共享数据的操作顺序不同,会影响程序的执行结果,因此Jav

8、a语言使传统的加锁技术对共享数据的操作进行并发控制。  1.对象加锁及其操作  临界区是指程序中的一个代码段,在这段代码中,单独并发的线程对同一个对象进行访问。在Java中,用关键字“synchronized”标识一个临界区。  对象锁是指Java为synchronized(Object)语句指定的对象进行加锁,对象锁是独占排他锁。  2.对象

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。