共享资源的方法

共享资源的方法

xiazhifei@qq.com

2018-2-10

 

一、问题说明

       某通信卡,有n个通道,本想程序1使用通道1通信,程序2使用通道通信……,但板卡句柄只能独占打开,资源是板卡级的,不是通道级的,颗粒太粗了,咋办?

 

二、方案

       有如下两种方案:

分层实现,比如服务端+客户端,当然这两种形态都可以集成到一个程序中,首先启动的进程充当服务端+客户端,后面的进程就是客户端。进程之间的通信传统的方式有文件映射、共享内存、匿名管道、命名管道、邮件槽、剪贴板、动态数据交换、对象连接与嵌入、动态连接库、远程过程调用、NetBios函数、套接字通信、WM_COPYDATA消息等几种,分布式架构首选套接字,单机首选共享内存,不细说了。当然也有封装好的库,开源的、免费的、商业的,各种各样的,但基本都是上述技术的封装和优化。我曾经基于套接字的方案实现过周立功can总线卡的共享,因此该方法对我而言算是一种熟悉的方法。

句柄复制,基于DuplicateHandle()函数,多个程序共享板卡句柄,分层实现的方法花销太大,且肯定有一定的延时,延时还不确定,实时性差了些,因此感觉这种方式最合适,且已有不少人用该方法实现了串口的共享,因此还是具备可行性的。

 

三、实现及验证

年前还有一天半班,就看我心情了,是玩游戏呢还是玩游戏呢,呵呵。

 

 

参考:

https://user.qzone.qq.com/359462189/blog/1492308044

https://user.qzone.qq.com/359462189/blog/1494160630

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值