【发布时间】:2014-02-03 11:00:07
【问题描述】:
我有一个写入两个缓冲区的函数。该类是线程化的,因此两个缓冲区有多个写入者。换句话说,多个共享缓冲区上有多个生产者(想象两个输入带)。
消费者线程需要能够随机选择要写入的缓冲区对象的实例 1 或实例 2,我不确定如何以一种看起来不多余的方式来处理这个问题(函数体和缓冲区对象完全相同,只是写入的对象会有所不同)。
Pseudocode:
Buffer bufA;
Buffer bufB;
int randRes = random * 2 // Generate 1 or 0.
if randRes = 1 {
if (bufA.tryInsert) {
// Do things here
} else {
// Do other things here }
} else {
if (bufB.tryInsert) {
// Do things here
} else {
// Do other things here }
}
对我来说似乎有些多余。由于主体本身有点大的功能,我可能还需要实现两个以上的缓冲区。有什么想法吗?
【问题讨论】:
标签: java multithreading function class object