关于多进程架构的一种思路

关于多进程架构的一种思路

 

为什么要搞多进程架构?

每一个进程都有自己的独立空间,一个进程崩溃,不会影响其他的进程。因此多进程架构的程序,它的健壮性大大加强。

单进程多线程的程序,经常会遇到因为主线程卡死,而导致整个进程“无反应”的情况。

 

相比使用动态库 DLL(BPL)的架构有什么差别?

对于动态库,以下称之为“包”。

对于使用包组织的程序,称之为“插件”架构。

对于封装有复杂对象或3方控件的包,通常会使用“公共包”来封装全局(公共)的对象和变量。

其他包要使用公共对象,通过引用公共包来进行访问。

此种方式,在程序进行部署的时候,要一同附带许多的运行时包。对于要带运行时包这事,许多人是深恶痛绝的。

而多进程架构的程序,则没有这个烦恼(不需要带运行时包)。

 

怎么实现程序的多进程架构?

笔者在此提供一种思路。

可以使用WINDOWS操作系统的内存映像文件,使多个进程之间共享全局对象。

当然此种方法同样也适用于包组织的插件架构在各插件间共享全局对象。

具体实现,详见:https://www.cnblogs.com/hnxxcxg/archive/2009/10/22/2940750.html

posted @ 2019-06-10 09:21  delphi中间件  阅读(1188)  评论(0编辑  收藏  举报