C#线程一个线程2个读数据的方法同时读,怎么样写

.Net技术 码拜 8年前 (2016-03-09) 766次浏览
如题
while(true)
{
//这里有轮询读取2个数据,这2个数据是分开的
本人现在是read1();
read2();
这样会有先后顺序,那么这个线程读取速度就比较慢,假如要让他们同时进行读的操作,该怎么样写
}
解决方案

10

设两个信号量x1为2,x2=0,read1   read2 为两个线程 这两个线程开始时对信号量x1减1 ,主线程中检查当x1==0把x2赋值为1,在read1  read2 读操作前判断x2能否为0,为1时开始读。每次都需要初始化这两个信号量。这样可以吗?

5

既然1和2没有逻辑上的前后关系那就放到两个线程里面各自读取处理呗。
假如1和2有逻辑关系,一定是先读一个再读另一个,那这个read1和read2就必然需要串行,这和线程不线程没有关系。

10

1个线程本人感觉是办不到的要不你这样
原因是有个主线程。你可以
Read1() ; //主线程的
开个线程处理Read2()
这样子算并行了,开了一个线程。

10

你得把这两个读放在一个原子操作中,才能保证写入的情况下,两者读到一样的值。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#线程一个线程2个读数据的方法同时读,怎么样写
喜欢 (0)
[1034331897@qq.com]
分享 (0)