摘要: 4遇到的问题1、如何解决printf导致两个线程频繁切换?这个问题的解决方法在前面已经明确了,就是分配一个很大的输出缓冲区,在写到一定程度时再一次性用printf输出,避免printf的频繁调用。最好实在程序结束时输出统计和信息。2、在使用锁之后,是否会导致线程的频繁切换?这也是我的疑问,后来在windows上做了一个实验证明了不同的锁会引起不同的线程调度行为。DWORD WINAPI ThreadProc(LPVOID){charbuf[1000];LARGE_INTEGER li;for(inti = 0; i < 100; ++i){LOCK();//这是个宏,用于切换使用各种锁t 阅读全文
posted @ 2011-05-10 21:14 30斤大番薯 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 关于线程同步与双队列性能1问题背景2第一种方式,共享队列3第二种方式,双队列4遇到的问题关于线程同步与双队列性能2009年7月12日星期日1问题背景这是在2008年3月学习多线程编程时遇到的一个问题。当时我写了一个代码片段,其中两个线程共享一个队列,一个线程往队列中写数据,而另一个线程从队列中读取数据。这是典型的生产者和消费者模型。但在这里并不适合使用semaphore来做。由于当时的我对多线程编程不太熟练,在线程中大量使用了printf输出调试信息,printf是典型的IO操作会引起线程的切换,所以打出来的信息也显示了线程切换十分频繁,几乎每一个数据入队列后,就立即被另一个线程抢占,并出队列 阅读全文
posted @ 2011-05-10 20:08 30斤大番薯 阅读(2314) 评论(0) 推荐(0) 编辑