一种多线程数据传输方法与流程

文档序号:12747867阅读:来源:国知局

技术特征:

1.一种多线程数据传输方法,具体方法为:

初始化系统时,申请一个能够容纳N个指针的连续内存空间;所述N=2m,m为大于等于1的整数;每个指针位置为一个单位,N个指针位置组成一个数组空间dataPtrArray;所述指针指向用户数据地址;

定义两个整数值:writePos和readPos;其中,writePos表示数据写入线程当前正要写入所述数组空间的位置;readPos表示数据读取线程当前正要从所述数组空间读取数据的位置;数据写入成功,则writePos值自增;数据读取成功,则readPos值自增,将被成功读取的数组空间位置的指针值清零;

定义一个整数掩码PosMask,其值为N-1;通过PosMask的值与读写位置的值做与运算,来决定当前正要写入和读取的真正的数组空间的位置,即当前写入的位置应该是dataPtrArray[writePos&PosMask],读取的位置是dataPtrArray[readPos&PosMask]。

2.根据权利要求1所述的多线程数据传输方法,所述方法还包括:写入数据时,采用Intel的锁总线技术,以原子的方式,同时判断写入位置是否为空,若为空,则写入,若不为空,则表示队列已经写满了,此时写入线程陷入等待;读取数据时,采用Intel的锁总线技术,以原子方式的判断读取位置是否为空,若不为空,则读取返回,并且将读取位置清零,若为空,则表示整个队列都已经读取完,此时读取线程陷入等待;当成功的写入一个数据指针时通知读取线程数据可读取;当成功的读取一个数据指针时通知写入线程数据可写入。

3.根据权利要求1或2所述的多线程数据传输方法,所述内存空间中,以每8个字节为一个单位。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1