嵌入式java线程使用编程

高洪岩某世界500强企业高级项目經理,10余年项目管理与开发经验10年Java相关开发经验,深谙Java技术开发难点与要点拥有良好的技术素养和丰富的实践经验。

精通J2EE核心技术、基于EJB的分布式系统开发、Android移动开发、智能报表、多java线程使用及高并发等相关的技术内容近期持续关注并发相关的前沿技术。喜欢技术与敎育相结合的方式共享知识以共同提高。生活中喜欢摄影对轮滑,旅游航模亦兴趣浓厚。编著《Java并发编程:核心方法与框架》

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

一开始我们只是希望开发一种軟/硬件模块化控制模块,使嵌入式控制系统的开发更方便和高效率

移动网络设备的飞速发展,促进了各种小型电子产品的诞生在工业囷家庭自动化,卫生保健和零售这些领域有很多机会部署新的小型设备。对这些小型电子产品而言硬件材料成本已显得微不足道,而研发成本却因为难度加大研发人员短缺而显得越来越高。只有像手机手表这样大众产品才可能分摊高昂的研发成本。

但是令人沮丧的昰许多年来嵌入式系统开发一直是非常复杂的工作需要阅读令人费解的各种元器件手册。使用设置非常复杂的开发环境例如Keil C 是一个功能强大的嵌入式系统的编译工具,能够编译大多数MCU的 C语言程序但是也正是因为如此,它的配置使用也是令人头疼的事情。一个优秀的嵌入式程序员需要具有软件和硬件的知识和经验

要提高嵌入式开发的效率有两个方向,一个是模块设计实现重复使用,二就是提高更方便的程序设计工具


Audunio 在这方面做了努力,程序员不再使用直接操作位端口和寄存器这样的模式了。相反使用软件的标识关键字和函數来控制硬件了。

同时Ardunio开发了一个与硬件无关的开发环境编写Ardunio程序的人可能大多数没有读过Atmel AVR的CPU手册,甚至不知道是什么MCU

这就像我只需偠食物,不必知道和关心食物是怎么做的那个厨师做的了。软件通过代码隐藏了硬件的真实属性

以这种方式使用表达硬件的对象在灵活性和程序安全方面有明显的好处。这不仅是低成本高性能的处理器用于扩展应用程序设备最好的方式,也是简化开发和创建更可靠产品的方法

另一个比较受欢迎的嵌入式模块是树莓Pi。

尽管Ardunio树莓PI受到了极大的欢迎,但是它们是单个MCU为核心和有限的一些I/O口的平台当在這些平台上扩展其它的接口和芯片,程序员依然躲不过令人烦恼的过程

现在高性能的片上系统(SOC)层出不穷。轻而易举地可以设计出一個高性能的嵌入式硬件平台但是选择灵活,性能强大的软件平台却不是容易的事情现在流行的方案包括了Linux 系统,Google的Andriod Ardunio 系统,已及最近Microsoft發布的 windows10

但是Linux,android和windows对于控制工程师来讲开发过于复杂。我们选择了NodeJS作为嵌入式系统的用户编程平台

我们一直有兴趣在这方面做点事,洏我们最擅长的就是通信技术我们研究了各种的通信协议和现有的控制计算机架构。于是想到了是否能够开发一种更为大众化的适合粅联网应用的计算机平台,硬件架构上类似于工业计算机的PLCBeckhoff 公司工业计算机那样的模块化结构和总线结构。

我们的第一步是开发了模块囮硬件模块这些模块能够灵活地结连和扩展。模块之间不像Ardunio树莓PI那样CPU芯片级的连接,而是采用了高速总线连接这样集成的系统是一個完整的产品,可以在工业环境下使用而不仅仅是样机(Prototype).

第二步,我们选择了NodeJS作为软件平台javascript作为编程语言。

使用一种非常普及的程序设计语言来开发嵌入式系统可以大大降低学习的难度。并且尽可能地实现与硬件无关非常重要我们尝试过JAVA,微软的Micro .NET framework等甚至LUA语言。泹是都不理想最终我们欣喜地发现NodeJS 是一个不错的选择。NodeJs让javascript在服务器上运行的平台

Javascript程序设计语言主要用于网页交互,现代浏览器都具有javaScript解释器允许浏览器运行嵌入在网页中javascript 程序,实现动态网页效果现在HTML5,CSS和Javascript成为了现代网页前端设计的主要工具Google公司著名的浏览器Chrome 中的javascript 引擎叫做V8。是一个开源程序

NodeJS是可以让javascript在服务器上运行的平台。但是它还做的更多它可能成为桌面应用软件的平台,也可以成为手机App的岼台

NodeJS充分考虑了在实时响应,超大规模数据要求下架构的可扩展性它摒弃了传统平台依靠多java线程使用来实现高并发的设计思路,而采鼡了单java线程使用异步I/O,事件驱动式的程序设计模型这些特征不仅带来了巨大的性能提高,还减少了多java线程使用程序设计的复杂性进洏提升了开发效率。

NodeJS的Javascript引擎是Chrome中的V8V8被称是世界上最快的javascript引擎。它的JIT的执行速度已经快到接近本地代码的执行速度

经过一段时间的比较,我们最后选择了NodeJS作为这个物联网设备的软件平台选择的理由是:

(1) NodeJS的异步,事件驱动/响应式计算模型和嵌入式系统中的”中断/响应” 模式非常相似

(2) NodeJS支持强大的网络功能,实际上它是一个强大的网络服务器平台

NodeJS是基于事件/响应的异步方式的程序设计,数据流计算模式和nodeJS嘚异步模式比较吻合

而且,我们也高兴地发现 Intel公司IBM公司这些大牌公司也开始研发基于NodeJS的嵌入式系统开发。

}

我要回帖

更多关于 java线程使用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信