短视频营销的优势和劣势,长治seo顾问,wordpress 分享 插件下载,html5开发微网站微软最近开源了P语言#xff0c;致力于在Linux、macOS和Windows上编写安全的异步事件驱动程序。 微软将P描述为一种领域特定语言#xff0c;对异步系统的组件间通信进行建模#xff0c;例如嵌入式、网络或分布式系统。P程序是通过有限状态机#xff08;finite state machin… 微软最近开源了P语言致力于在Linux、macOS和Windows上编写安全的异步事件驱动程序。 微软将P描述为一种领域特定语言对异步系统的组件间通信进行建模例如嵌入式、网络或分布式系统。P程序是通过有限状态机finite state machine来定义的这些状态机会并发运行。每个状态机都有一个输入队列、状态、转换、机器本地存储并且可以发送异步信息给其他状态机。在P中的基本操作要么是更新本地存储发送消息要么就是创建新的状态机。如下的代码片段展示了如何使用P来描述一个状态及其转换。除此之外它还展现了如何发送消息或创建新的状态机 ...
start state Init {entry {server new Server();raise SUCCESS;} on SUCCESS goto SendPing;
state SendPing {entry {send server, PING, this;raise SUCCESS;}on SUCCESS goto WaitPong;
}
... 按照微软的说法P程序能够使用模型检查功能来进行核实。这样的话就允许开发人员确保所有的事件均能得到及时地处理。对于P程序来说要想保证响应性它的状态机就要处理每个状态上所有可以出队dequeue的事件。这种做法并不一定总是可行因此对一些事件可能会进行延迟处理。在这种情况下语言能够确保某个事件不会无限期延迟。P编译器能够核实程序的状态还可以生成C代码并交给C编译器执行另外它还可以输出Zing模型用于系统测试。Zing是一个针对并发程序的开源模型检查器它能够系统性地暴露一个模型所有可能出现的状态。 微软使用P语言实现和检验了Windows 8 USB设备驱动栈的核心功能。按照微软的说法工程师使用P来序列化大量来自硬件、操作系统、功能驱动以及其他驱动组件的不同事件提升了性能和可靠性。他们尤其指出在新的USB hub驱动中非法内存访问和竞态条件的数量不那么明显了同时枚举时间快了30%也没有观察到worker条目饿死的现象。 原文链接http://www.infoq.com/cn/news/2016/10/microsoft-p-language-opensourced .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注