java多线程技术在嵌入式调试工具开发中的研究及应用

java多线程技术在嵌入式调试工具开发中的研究及应用

ID:37177909

大小:226.62 KB

页数:4页

时间:2019-05-21

java多线程技术在嵌入式调试工具开发中的研究及应用_第1页
java多线程技术在嵌入式调试工具开发中的研究及应用_第2页
java多线程技术在嵌入式调试工具开发中的研究及应用_第3页
java多线程技术在嵌入式调试工具开发中的研究及应用_第4页
资源描述:

《java多线程技术在嵌入式调试工具开发中的研究及应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7卷第l0期软件导刊VO1.7N0.102008年1O月SoftwareGuide0ct.2008Java多线程技术在嵌入式调试工具开发中的研究及应用郭慎平,闰志贵(武汉理工大学计算机科学与技术学院,湖北武汉430070)摘要:在嵌入式调试工具的开发过程中,往往需要能准确及时接收和分析来自目标板的实时数据,这些过程一般是协同工作、并行完成的,多线程可以较好地实现这些目标。通过一个基f-Eclipse~台的嵌入式调试工具的实现,对Javai~言的多线程技术,重点是同步技术进行了详细的分析和研究。

2、关键词:Java;多线程:嵌入式调试工具中图分类号:TP312文献标识码:A文章编号:1672—7800(2008)10—0042—04方法里面的代码定义了这一线程的行为。O引言publicclassmyThreadimplementsRunnable{publicvoidFun(){现代操作系统中大都支持创建多进程,这样可以增加资源⋯⋯//线程行为利用率。但是,创建每个进程要付出一定的代价:设置一个进程}要占用相当一部分处理器时间和内存资源。而且,大多数操作)系统不允许进程访问其它进程的内存空

3、间。因此,进程间的通定义了上面的类,在需要创建线程的时候,只需要调用new信很不方便,并且也不会将它自己提供给容易的编程模型。线Thread()创建一个线程对象,然后调用这个对象的start()方法,程也称为轻型级进程.因为线程只能在单个进程的作用域内活就可以启动一个线程。对于上面的这个类,代码如下:动,所以创建线程比创建进程要廉价得多。这样,因为线程允许ThreadtestThread=newThread(newmyThread());,/创建协作和数据交换,并且在计算资源方面非常廉价,所以线

4、程比线程进程更可取。线程需要操作系统的支持,因此不是所有的机器testThread.start();,/启动线程都提供线程.Java编程语言已将线程支持与语言本身合为一1.2线程的状态体,这样就对线程提供了强健的支持。嵌入式调试工具的作用Java线程被创建后,即进人它的生命周期中,周期中线程之一是在宿主机上重构嵌入式程序的执行流.在这类调试工具一共会有四种状态,如图1所示。的开发中,通常程序需要实现从目标板获取大量的原始数据流,然后根据协议解析这些数据,最后在将其还原为源程序的执行流。在该过程中

5、,程序的控制、数据的接受、数据的解析、结果的显示是数个相对独立的过程,但各个过程又有相互协同的关系。因此Java的多线程技术在这里得到了比较好的应用。1Java多线程技术概述1.1线程的实现作为一个完全面向对象的语言,Java提供了两种方法来方便多线程编程:第一种是继承java.1ang.Thread类,该类提供了大图1线程的状态量的方法来方便我们控制自己的各个线程;第二种是实现(1)新状态:线程已被创建但尚未执行(start()尚未被调Runnable接口。这两种方法都需要在类里面实现Run(

6、)方法,该用)。作者简介:郭慎平(1979~),男,湖北远安人,武汉理工大学计算机学院硕士研究生,研究方向为嵌入式;闫志贵(1984~),男,河南信阳人,武汉理工大学计算机学院硕士研究生,研究方向为嵌入式。第10期郭慎平.闫志贵:Java多线程技术在嵌入式调试工具开发中的研究及应用·43·(2)可执行状态:线程可以执行,虽然不一定正在执行。myLock.1ock//aReentrantLockobjectCPU时间随时可能被分配给该线程,从而使得它执行。try(3)死亡状态:正常情况下YUB()

7、返回使得线程死亡。调用{stop()或destroy()亦有同样效果,但是不被推荐,前者会产生异While(!foktoproceed))//~1]断条件是否满足常,后者是强制终止,不会释放锁。myCondition.await0;(4)阻塞状态:线程不会被分配CPU时间,无法执行。dothejob;//有效工作myCondition.signalAll0;2Java多线程同步技术}finallyf在多线程编程中,每个线程都用编码提供线程的行为,用myLock.unlock数据供给编码操作。多个

8、线程可以同时处理同一编码和数据.l不同的线程也可能各有不同的编码和数据。事实上编码和数据如果线程在进行条件判断的时候.发现执行有效工作的条部分是相当独立的,需要时即可向线程提供,因此经常是几个件不满足,它就调用条件对象的await()方法。该方法将阻塞当线程使用同一编码和不同的数据。在很多实际的应用中。通常前线程,同时它也将放弃当前对象的锁。别的线程可以来执行会有两个或多个线程需要对相同的对象进行共享访问.如果两段临界区的代码,其它的线程如果判断条件成立,执行了有效个线程访问相同的对象,而且每一

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

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

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