将DEQWAIT配置为使用多个线程的正确方法是什么



这里有人与*USRQ合作过吗?通过usrq在线程之间交换时出现问题有两个线程通过KEYED USRQ非常密集地交换消息(一个线程用密钥KEY1发送消息,用密钥KEY2读取消息,第二个线程反之亦然(。问题是,如果所有这些在两种不同的工作中都有效,那么一切都很好。但是当在同一任务的两个不同线程中时;粘贴";begin-一条肯定从一个线程发送的消息在很长一段时间后(最长固定为120秒(就可以从另一个线程读取。根据堆栈判断,两个线程当前都处于消息等待状态(DEQWAIT(——一个线程已经发送了消息,正在等待第二个线程的响应消息,但第二个无法长时间接收发送的消息。我重复一遍,问题只是当在同一个作业中的两个线程之间交换消息时。如果交换是在两个不同的工作之间,那么一切都会很快进行。

我没有使用*USRQ,但当我使用*DTAQ时,我总是以一种方式创建队列。这使管理它们变得更容易。您仍然可以使用键控队列来检索特定的消息,但通常读者不必担心特定的消息是否适合他们。如果队列是双向的,那么队列的两侧都将有读取器,并且必须采取措施确保写入队列一侧的消息只被队列的另一侧读取。可能是这个问题导致了锁定。

相关内容

  • 没有找到相关文章

最新更新