Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

幽幽婉婉,薄雾半掩:轻凝晨露沾眼帘

$
0
0

这几天抓狂到掉渣,一照镜子眼球红完,真让人不寒而栗。

也不知道连续多少天睡眠严重不足了,今天总突破这层阻隔。

没有女人的男人有时候思维会陷入某种旋窝,发散不开。

如何同步对共享内存操作让我心力交瘁,最后楼下的小情侣3点多的时候又兴风作浪,女的一声惊雷让我灵光乍现:

我管好我的表演就足够了,何须管对方呢?

于是把纠结同一段内存的问题分成两段,一段A to B,一段 B to A,真是茅塞顿开!

如果分成4段:A对B读取,A对B写入,B对A读取,B对A写入,连同步都免了。

阿叔16G的内存,DLL全局段或者一部分做虚拟内存就更爽了,用空间换取时间和算法复杂度,绝对划得来。

 

技术原因:多进程协作

多线程的同步很简单,一个临界区就解决。进程可没那么简单,DDE太罗嗦,SendMessage容易因各进程又有多线程而死锁。

一开始的想法:

 

1.开始(操作准备)

2.进入临界区(线程同步)

3.写入数据 -问题:如何确定外部程序不在操作中,即便系统对线程分配时间片时能够保证不同时访问,但会有数据丢失

4.设置写信号

5.离开临界区

6.结束

 

分多个段后,可以蛮干向写入段写入数据,外部读线程蛮干读取,以事件同步即可

读取也是一样,只是“反客为主”而已。

 

天快亮了,听首歌:美丽的烟花江,仿佛就在梦里,轻凝晨露沾眼帘……

2013-12-12 07:06:06

作者:prsniper 发表于2013-12-12 7:06:23 原文链接
阅读:104 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>