我试图将一组带有线程(比如thread1)的字符串排入BlockingQueue,并将这些排队的项写入具有不同线程(thread2)的文件中。一个简单的生产者 - 消费者问题。
线程1:
while(condition) { queue.add(data); }
线程2:
while(true) { queue.take(data); //write the took data }
这整个操作可以正常工作,数据是String。当我尝试使用StringBuilder执行相同的操作时,结果是随机的。
如果排队的数据是"这是我的数据",输出是" y data"或者"是我的数据"或整个数据的一些随机子集(有时也是预期的整个数据)
阻塞队列的性质是以这种方式表现为stringBuilders还是我做错了?