java多线程技术在物流仿真软件开发中的应用

java多线程技术在物流仿真软件开发中的应用

ID:34469833

大小:616.31 KB

页数:4页

时间:2019-03-06

java多线程技术在物流仿真软件开发中的应用_第1页
java多线程技术在物流仿真软件开发中的应用_第2页
java多线程技术在物流仿真软件开发中的应用_第3页
java多线程技术在物流仿真软件开发中的应用_第4页
资源描述:

《java多线程技术在物流仿真软件开发中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、应用研究顾玉洁汤军社Java多线程技术在物流仿真软件开发中的应用61Java多线程技术在物流仿真软件开发中的应用顾玉洁,汤军社(西北工业大学机电学院,陕西西安710072)摘要:通过对Java多线程的介绍,将其应用于物流仿真软件的开发,通过多线程技术来实现物流过程中的分布交互式仿真。采用UML标准建模,使过程标准化、可视化,并且对系统主要的对象进行了状态分析,使其简单易懂。关键词:多线程;仿真;UML中图分类号:TP391.9文献标识码:A文章编号:1672-1616(2009)09-0061-04近年来,由于现代化技术不断推

2、陈出新,尤其类java.lang.Thread来方便多线程的编程。是信息技术的飞速发展,世界制造业发生了重大变(1)继承Thread类,覆盖方法run(),加入线程化,最突出的特征是制造业的全球化趋势加强,商所需要执行的代码即可。但是Java是单继承,已品流动加快;工厂规模扩大,生产环节的多样性等经继承了Thread类,就不能继承其他类了,所以可等。传统的基于顺序的仿真方法存在局限性,并以实现Runnable接口。发、交互事件的大规模发生不能在小规模离散事件(2)实现Runnable接口,使用Runnable接口模拟方法基础上进行,且会在物流环节上造成损来

3、实现多线程使得我们能够在一个类中包含所有失,或不能达到满意结果。的代码,有利于封装。对于复杂的现实系统的研究,用离散数学的观b.线程的4种状态。点有时会由于错误假设而有建模偏差,而传统的仿(1)新状态(New):线程已被创建但尚未执行。真时钟推进机制也影响了仿真系统不能精确地模(2)可执行状态(Runnable):线程可以执行,虽拟现实系统,仿真时钟推进只能在离散事件时间点然不一定正在执行。上跳跃,事件也在瞬间完成,而且不能与其他事件(3)死亡状态(Dead):正常情况下run()返回交互,也不能有自己的控制流。使得线程死亡。这些问题都可以用多线程技术得到

4、很好的解(4)阻塞状态(Blocked):线程不会被分配CPU决。多线程技术是同一个进程下包含的多个轻量时间,无法执行。级进程,与进程不同的是线程能够在进程范围内共线程的模型如图1所示。享资源,并且可以并发执行。考虑一个仿真应用程序,要模拟多个实体之间的交互作用,给每个实体一个自己的线程可以使许多仿真程序的建模大大简化。本文最后通过一些实例的建模向读者展示多线程在物流仿真中的应用。1在Java中实现多线程图1线程模型图大多数的操作系统都支持线程,而且线程的概c.线程的优先级(Priority)。念以各种形式存在了好多年。但是Java是第一个线程的优先级

5、代表该线程的重要程度,当有多在语言本身显示的包含线程的主流编程语言,没有个线程处于可执行状态并等待获得CPU时间时,把线程化看作是底层操作系统的工具。线程控制系统根据各个线程的优先级来决定谁分a.作为一个完全面向对象的语言,Java提供了配到CPU时间,优先级高的线程有更大的机会获收稿日期:2008-12-01作者简介:顾玉洁(1984-),女,陕西西安人,西北工业大学硕士研究生,主要研究方向为管理科学与工程。622009年5月中国制造业信息化第38卷第9期得CPU时间。设备的线程就得停下来等待修理,也就是所谓的线例如,有2个加工台同时对一个AGV小

6、车发程的阻塞,阻塞状态要等到修理线程的结束返回信出信号,AGV小车的类实例根据这2个加工台的号才能重新恢复。线程阻塞有以下几种方法:线程判断优先级高低,先给高优先级的线程分配时(1)sleep()方法:该方法使得线程在指定时间间,避免冲突。线程优先级的设定便于加工系统中内(比如随机的加工持续时间)进入阻塞状态,不能突发事件的控制,如加急作业、故障修理等等。得到CPU时间,指定的时间一过,线程重新进入可d.线程的同步(synchronize)。执行状态。由于同一进程的多个线程共享同一片存储空(2)suspend()和resume()方法:suspend()使

7、线间,在带来方便的同时也带来了访问冲突这个严重程变成挂起状态,并且占用资源,直到有resume()的问题。Java语言引入了锁的概念:每个对象都使这个挂起的线程继续执行,可以应用在故障处理有一把锁,用来保证任一时刻只能有一个线程访问仿真上,当实体产生故障,进入修理状态并等待修该对象。它包括2种方法:synchronized方法和理完成信号。synchronized块。(3)yield()方法:yield()方法使得线程放弃当synchronized方法控制对类成员变量的访问:前分得的CPU时间,但是不会使线程阻塞,随时可每个类实例对应一把锁,每个syn

8、chronized方法都能再次分得CPU时间。必须获得调用该方法的

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

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

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