Java多线程编程技术论文

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java多线程编程技术论文

摘要:在编程领域,Java多线程编程技术具有极大的应用价值和潜力,将会发展成为一种主流的编程技术,所以,对其进行研究并予以掌握具有相当积极的现实意义。

基于开发性能考虑,多线程明显优于单线程,同时多线程技术的应用需要借助操作系统予以实现[1]。Java语言为多任务并发执行提供了可能,为多线程及其运行环境营造了有利的软件环境。

1 多线程概述

对于计算机而言,其执行的程序又被称作“进程”,每个进程不仅对应一块相对独立的内存空间,同时还对应一组系统资源。就本质而言,所谓进程其实就是程序执行的整个过程。线程是进程的一个组成部分,即某个单一顺序的控制流。多线程技术的应用能够提高开发程序的应用性能,同时也不可避免地提高了程序内部的复杂程度。

2 Java实现多线程的方法

对于Java多线程编程而言,其程序设计方法主要包括两种,一种是继承Thread类,另一种是实现Runnable接口。下文将予以具体介绍。

2.1 继承Thread类

应用该种设计方法时,将线程体设置在run()方法中,具体操作是,创建一个Thread类的对象,然后借助该对象的start()方法以实现消息发送的目的,最终启动线程。应用该方法对多线程进行定义,不仅方便,而且简单,相对容易实现。

2.2 实现Runnable接口

先定义,然后并发执行对象,从而实现Runnable接口,接下来在该对象的帮助下创建所需的线程对象[3]。

通过创建便可实现Runnable接口的对象实例,同时还可以将其用作创建Thread类实例的相关参数。Java语言原本仅能实现单继承,而借助上述方法定义的多线程对象除了可以实现单继承外,还能够继承其他的类,如此一来,便通过间接途径具备了多继承性的功能。

3 线程的交互

1)不同线程执行着各自任务,若任务相互间存在某种内在联系,则须编写相应程序以实现交互的目的。Java的object类基于此向人们提供了3种方法:①wait();②notify();③notifyAll()。当线程执行某对象的wait()方法时,便会提供基于该对象的标记锁,并将之纳入以该对象为标记的等待池中;一个线程执行该对象的notify()方法,然后基于随机原则从等待池中选调一个线程,并将之归入锁池之中;一个线程执行notifyAll()方法[2],能够将该对象对应的那些处于等待状态的线程经由等待池进入锁池。通常情况下,上述三种方法的调用均需被放置在同步代码块中,对Java线程的整个“生命过程”进行总结,归纳出如下状态:1)新建状态。创建线程类子类实例之后,予以初始化,那么这一对象便进入到了新建状态,该情况下,存在与之对应的存储空间以及一系列进程资源;2)就绪状态。前一状态线程被置于就绪状态,具体而言就是,进入就绪队列,静候CPU时间片的到来。该情况下,已经基本具备了运行所需

的诸多条件,至于什么时候真正执行,则由两点决定,一个是线程优先级,另外一个是就绪队列所处状态;3)挂起状态。受相关原因影响,运行中的线程自动退出CPU以暂停本身任务的执行,即进入到所谓的挂起状态。当相关原因被有效解决后,方可重新回归到运行状态;4)终止状态。一个线程走完了所有程序,或者被强制结束,便会进入到终止状态。该状态下的线程无法被恢复和重新执行。

4 线程的同步

对于同一进程而言,其涉及的多个线程共同拥有一片存储空间。这种方式虽然较为便利,也留下了访问冲突这一严重隐患。Java语言针对该问题设计了相应的处理机制,从而理想地避开某个数据对象在同一时间点被多个线程访问的弊端。该套机制就是synchronized 关键字,共涉及两种用法,一个是synchronized方法,另一个是synchronized块[3]。

以synchronized方法为例。应用该方法可实现对对类成员变量访问的有效控制。每个类实例均有一个与之对应的一把锁,因而任何一个synchronized方法均须获得这个“锁”,才能继续执行,如果所属线程处于阻塞状态,那么方法执行过程中便会独占该锁,直至由此方法返回时方可完成锁的释放,之后处于被阻塞状态的线程才能获得该锁,并再次执行。该机制的应用,使得同一时刻所涉及的各个类实例,其全部声明为synchronized的成员函数中最多允许一个被执行,如此一来,有效防止了类成员变量访问冲突这一矛盾。在Java 中,除类实例之外,每一个类也全都对应着一把锁,所以,可以将类

的静态成员函数进行synchronized声明,从而实现对对类的静态成员变量访问的有效控制。

Synchronized方法也存在一定的不足:如果将某个大的方法进行synchronized声明处理,那么将会严重制约运行效率,较为典型的案例有,将线程类的方法run()声明为synchronized,由于它在线程所有运行环节中一直处于运行状态,所以,造成其对本类任何synchronized方法所施加的调用命令均不执行。

5 结语

大量运用实践表明,在编程领域,Java多线程编程技术具有极大的应用价值和潜力,将会发展成为一种主流的编程技术,所以,对其进行研究并予以掌握具有相当积极的现实意义。

参考文献

[1]吴金秀.Java多线程编程技术的研究[J].网络与信息,2009,05:40.

[2]谢进军.Java多线程技术在考试系统中的应用[J].电子制作,2013,15:76.

[3]耿金秀.Java多线程技术在网络通信系统中的实际运用思路研究[J].电子技术与软件工程,2013,24:65.

相关文档
最新文档