对Java多线程编程技术的分析思考_第1页
对Java多线程编程技术的分析思考_第2页
对Java多线程编程技术的分析思考_第3页
对Java多线程编程技术的分析思考_第4页
对Java多线程编程技术的分析思考_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

对Java多线程编程技术的分析思考对Java多线程编程技术的分析思考对Java多线程编程技术的分析思考xxx公司对Java多线程编程技术的分析思考文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度对Java多线程编程技术的分析思考摘要:本文基于Java多线程编程技术进行了全面而深入地分析和思考,以期促进多线程编程技术在Java语言中的进一步应用,也为同行提供一些有益的参考。关键词:Java多线程编程技术分析思考中图分类号:文献标识码:A文章编号:1007-9416(2014)01-0225-01基于开发性能考虑,多线程明显优于单线程,同时多线程技术的应用需要借助操作系统予以实现[1]。Java语言为多任务并发执行提供了可能,为多线程及其运行环境营造了有利的软件环境。1多线程概述对于计算机而言,其执行的程序又被称作“进程”,每个进程不仅对应一块相对独立的内存空间,同时还对应一组系统资源。就本质而言,所谓进程其实就是程序执行的整个过程。线程是进程的一个组成部分,即某个单一顺序的控制流。多线程技术的应用能够提高开发程序的应用性能,同时也不可避免地提高了程序内部的复杂程度。2Java实现多线程的方法对于Java多线程编程而言,其程序设计方法主要包括两种,一种是继承Thread类,另一种是实现Runnable接口。下文将予以具体介绍。继承Thread类应用该种设计方法时,将线程体设置在run()方法中,具体操作是,创建一个Thread类的对象,然后借助该对象的start()方法以实现消息发送的目的,最终启动线程。应用该方法对多线程进行定义,不仅方便,而且简单,相对容易实现。实现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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论