Java 如何将生产者类外部的值添加到生产者线程(阻塞队列实现)
我想从类外添加一些字符串到Java 如何将生产者类外部的值添加到生产者线程(阻塞队列实现),java,producer-consumer,blockingqueue,Java,Producer Consumer,Blockingqueue,我想从类外添加一些字符串到sharedQueue;实现这一目标的最佳实践是什么 从外部类本身直接添加到sharedQueue并传递构造函数 将该值发送给构造函数并从中添加 还有别的方法吗 如果答案是1或2,那么为什么所有的例子都显示了整数值放入生产者的run方法和取出消费者的方法 class Producer implements Runnable { private final BlockingQueue<String> sharedQueue; public
sharedQueue
;实现这一目标的最佳实践是什么
sharedQueue
并传递构造函数run
方法和取出消费者的方法
class Producer implements Runnable {
private final BlockingQueue<String> sharedQueue;
public Producer(BlockingQueue<String> sharedQueue) {
this.sharedQueue = sharedQueue;
}
@Override
public void run() {
try {
sharedQueue.put("value passed from outside class");
} catch (InterruptedException ex) {
Logger.getLogger(Producer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
类生成器实现可运行{
私有最终阻塞队列sharedQueue;
公共生产者(封锁队列共享队列){
this.sharedQueue=sharedQueue;
}
@凌驾
公开募捐{
试一试{
sharedQueue.put(“从类外部传递的值”);
}捕获(中断异常例外){
Logger.getLogger(Producer.class.getName()).log(Level.SEVERE,null,ex);
}
}
}
在降价中,您可以使用1。9(带点)创建一个列表,在双行结束后。现在,代码可以用三个回号(`
)包装,内联代码可以用一个回号包装(您可以通过单击查看我的更改。通常情况下,请在问题末尾使用问号。请您再看一看代码前面的句子好吗?如果您要放入队列中的字符串无法立即使用,则您可以将必须使用字符串的类的实例传递给生产者。
然后ucer在稍后的时间点从类实例中请求值。