1.用双缓冲直接交换指针的方式,而不使用memcpy函数交换数据。
2.不使用同步变量,直接使用volialte变量。处理线程监控该变量(待处理缓冲中数据量)是否为0,否则表示有新数据产生,sleep函数实现线程间切换。数据生成线程产生数据到一半的时候不断尝试与处理线程交换缓冲区,如果处理线程未消化之前数据,继续写入直到溢出抛弃或者交换成功,获取空的缓冲。
1.用双缓冲直接交换指针的方式,而不使用memcpy函数交换数据。
2.不使用同步变量,直接使用volialte变量。处理线程监控该变量(待处理缓冲中数据量)是否为0,否则表示有新数据产生,sleep函数实现线程间切换。数据生成线程产生数据到一半的时候不断尝试与处理线程交换缓冲区,如果处理线程未消化之前数据,继续写入直到溢出抛弃或者交换成功,获取空的缓冲。