讨论切换线程的函数:
SwitchToThread(); // 切换到其他线程,即使其他线程优先级比自己低也会切换
sleep(0); // 切换到其他线程,只能切换到比自己优先级高或者同等优先级的线程,不会切换到低优先级线程。
首先设计一个一线程写一线程读的队列,拥有读写2个指针。
读线程:
1、首先判断读写指针,如果读指针==写指针,那么返回无数据,否则读取数据,然后读指针+1.
写线程:
1、(如果使用循环队列)写线程进入以后检查读写指针,如果读指针=写指针+1,那么写线程进入线程切换,直到读指针移动之后继续写入。(如果数据是允许丢弃的实时数据的话也可以不做判断); // 为了能原子操作数据,最好在循环队列里保存指针
2、写指针写入数据,并+1;
下面来考虑多个线程同时写时如何实现。