基本上情商一般网上的男人第一次约会掏钱请女生吃饭...# Piebridge - 鹊桥
h*e
1 楼
producer / consumer 问题, 要求threadsafe, high throughput
class ProducerConsumer
{
ReaderWriterLock rwLock = new ReaderWriterLock();
AutoResetEvent FullEvent = new AutoResetEvent ();
AutoResetEvent EmptyEvent = new AutoResetEvent ();
public void Producer()
{
rwLock.AcquireWriterLock();
while(queue is full)
{
FullEvent.waitOne();
}
//add
if(Queue.count == 1)
EmptyEvent.set();
rwLock.ReleaseLock();
}
public void Consumer()
{
rwLock.AcquireReaderLock();
while(Queue is empty)
{
EmptyEvent.WaitOne();
}
dequueue();
if (Count == max – 1);
FullEvent.set();
rwLock.ReleaseReaderLock();
}
class ProducerConsumer
{
ReaderWriterLock rwLock = new ReaderWriterLock();
AutoResetEvent FullEvent = new AutoResetEvent ();
AutoResetEvent EmptyEvent = new AutoResetEvent ();
public void Producer()
{
rwLock.AcquireWriterLock();
while(queue is full)
{
FullEvent.waitOne();
}
//add
if(Queue.count == 1)
EmptyEvent.set();
rwLock.ReleaseLock();
}
public void Consumer()
{
rwLock.AcquireReaderLock();
while(Queue is empty)
{
EmptyEvent.WaitOne();
}
dequueue();
if (Count == max – 1);
FullEvent.set();
rwLock.ReleaseReaderLock();
}