2个进程通信,进程A使用300个线程循环向进程B的一个线程发送数据,如何保证不丢失数据?
情况大概如下
进程A:进程A的数据存储空间//这里的数据,我使用了listfor (int i = 0 ; i<300 ; i++)
{
CreateThread(0,0,FunThread1,0,0.....);
CreateThread(0,0,FunThread2,0,0.....);
}FunThread1(LPVOID p)
{
while(1)
{
向进程A的数据存储空间写入数据
}
}FunThread2(LPVOID p)
{
while(1)
{
程A的数据存储空间的数据 发向进程B。
}
}进程B
void ReceiveBuffer()
{
保存进程A的数据
}
情况大概如下
进程A:进程A的数据存储空间//这里的数据,我使用了listfor (int i = 0 ; i<300 ; i++)
{
CreateThread(0,0,FunThread1,0,0.....);
CreateThread(0,0,FunThread2,0,0.....);
}FunThread1(LPVOID p)
{
while(1)
{
向进程A的数据存储空间写入数据
}
}FunThread2(LPVOID p)
{
while(1)
{
程A的数据存储空间的数据 发向进程B。
}
}进程B
void ReceiveBuffer()
{
保存进程A的数据
}
1、发送发 -- 如何发送?
2、如何进程间通信
3、如何缓冲(收、发)
4、同步控制(信号量、Event ...?),包括缓冲内存的大小、访问控制、数据满处理等
5、接收方 -- 如何接收?
我的思路是做一个服务线程和一个命令队列,只要队列不空就向B发送。我觉得A向B发送的话一个线程就足够了,当然,如果B里有多个线程接收的话,可以用多个发。
顺便问一下,你的测试结果如何了?