有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中多线程管理队列系统

我有一个请求队列。有两条线。在on thread中,我将项目添加到队列中,第二个线程基本上从队列列表中获取请求并执行它们。所以第二个线程等待第一个线程将一些请求放入列表中。我正在做一个循环。我不认为这是最好的方法。它是CPU密集型的。每当我添加请求时,我可以想出一种通知第二个线程的方法。但是可能会有问题,请求可能无法成功执行,所以我必须再次请求第二个线程来执行请求。 那么你认为有什么办法可以奏效吗


共 (2) 个答案

  1. # 1 楼答案

    你可以利用Semaphores来解决这个问题

    第二个线程,即工作线程,将等待信号量。每次第一个线程将新任务信息推送到Queue结构上时,它也会发布到Semaphore,这样第二个线程就可以安全地执行了

    如果有多个读写器线程,这可能还需要一些同步