读书人

多线程读数据处理数据解决办法

发布时间: 2012-02-28 13:06:36 作者: rapoo

多线程读数据,处理数据
一个线程负责读数据,N个线程负责消耗数据。

消耗数据的线程是自己获取数据好还是单独实现一个管理器负责将数据发往消耗线程?

没写过这种类型的程序,大家帮个忙


[解决办法]
读数据单独一个线程专门负责数据分发到处理线程, 每个处理线程都需要一个队列, 而且可以做到队列数据无需加锁。

模式可以参见: http://blog.csdn.net/kyee/archive/2009/09/09/4536957.aspx
队列可以参见: http://blog.csdn.net/kyee中有很多关于队列的文章

[解决办法]
单独实现一个管理器负责将数据发往消耗线程
理由1:解耦合(读线程与消耗线程)
理由2:容易管理消耗线程

如果读线程有一定复杂度,或者消耗线程同步有一定复杂度,才推荐这样做。如果都很简单则没必要。

读书人网 >C++

热点推荐