tangtb

Hadoop,SpringMVC,ExtJs,Struts2,Spring,SpringSecurity,Hibernate,Struts
posts - 25, comments - 88, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Java 多线程访问WebSphere MQ(摘自官网)

Posted on 2017-03-22 15:29 tangtb 阅读(513) 评论(0)  编辑  收藏 所属分类: WebSphere MQ

Java™ 运行时环境是继承性多线程的。WebSphere® MQ classes for Java 允许在多个线程之间共享队列管理器对象,但确保对目标队列管理器的所有访问都是同步的。

Java 中很难避免多线程程序。请考虑一个连接到队列管理器的简单程序,并在启动时打开队列。该程序在屏幕上显示单个按钮。当用户单击该按钮时,程序从队列中取出一条消息。

Java 运行时环境是继承性多线程的。因此,应用程序的初始化将在一个线程中进行,作为响应按钮按下而执行的代码在另一个线程中进行(用户接口线程)。

使用基于 C 的 WebSphere MQ 客户机时,因为在多个线程之间共享句柄存在局限性,所以会导致问题。WebSphere MQ classes for Java 放松了此约束,允许队列管理器对象及其关联的队列、主题和进程对象能够在多线程之间共享。

对于给定的连接(MQQueueManager 对象实例)而言,WebSphere MQ classes for Java 的实现确保了所有对目标 WebSphere MQ 队列管理器的访问都是同步的。阻止了要发出对队列管理器的调用的线程,直到该连接进程中的所有其他调用都完成。如果要从程序内的多个线程同时访问同一个队列管理器,应为需要同时访问的每个线程都创建一个新的 MQQueueManager 对象。(这等同于为每个线程发出一个单独的 MQCONN 调用。)

原文地址:
https://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_7.0.1/com.ibm.mq.csqzaw.doc/ja11160_.htm


只有注册用户登录后才能发表评论。


网站导航: