Java 8 使用Executor服务的生产者-消费者模式中的死锁场景

Java 8 使用Executor服务的生产者-消费者模式中的死锁场景,java-8,producer-consumer,threadpoolexecutor,Java 8,Producer Consumer,Threadpoolexecutor,在使用ExecutorService的生产者-消费者模式中,如果所有线程开始执行消费者任务并阻止自己等待生产者无限期地推送数据,该怎么办 这会发生吗?? 如果我说要下载X个Url,然后解析内容并存储在数据库中。我使用多线程的生产者和消费者类比来解决这个问题 制作人将下载内容并将数据放入大小为Y(例如Y)的阻止队列中 现在,假设我创建了一个由N个线程组成的线程池,其中N个是的,当您进行错误的配置时,您可能会遇到您要求的问题。问题是什么?我的问题是,如果我尝试使用executor service实现

在使用ExecutorService的生产者-消费者模式中,如果所有线程开始执行消费者任务并阻止自己等待生产者无限期地推送数据,该怎么办

这会发生吗?? 如果我说要下载X个Url,然后解析内容并存储在数据库中。我使用多线程的生产者和消费者类比来解决这个问题

制作人将下载内容并将数据放入大小为Y(例如Y)的阻止队列中
现在,假设我创建了一个由N个线程组成的线程池,其中N个是的,当您进行错误的配置时,您可能会遇到您要求的问题。问题是什么?我的问题是,如果我尝试使用executor service实现生产者-消费者模式,而我对线程没有任何控制权。那么我如何避免这个问题?这是imp可能没有任何控制。如果执行器只有一个线程怎么办?您需要的最低限度是了解执行器的策略,包括最少的线程数。其他任何事情都取决于您的实际应用程序设计。说它是某种生产者/消费者,是不够的。