我有一些代码只想允许一个线程访问。我知道如何使用synchronized
块或方法来完成此操作,但是在集群环境中可以工作吗?
目标环境是WebSphere 6.0,集群中有2个节点。
我感觉这种方法synchronized
行不通,因为每个节点上的每个应用程序实例都将拥有自己的JVM,对吗?
我在这里试图做的是在启动系统时对数据库记录进行一些更新。它将查找代码版本之前的所有数据库记录,并执行特定的任务来更新它们。我只希望一个节点执行这些升级,因为我想确保每个工作项仅升级一次,并且这些升级的性能不是大问题,因为它仅在应用程序启动时发生,并且实际上只做任何事情自上次启动以来更改代码的时间。
该数据库是DB2v9,我直接通过JNDI(没有ORM层)访问它。
有人建议全局锁定可能是解决问题的方法,但是我不确定如何做到这一点。
有人在这个领域有什么指针吗?
谢谢!
问题内容: 考虑以下简单代码: 当child增加myvar时,该值是否与父亲共享(如pthread)? 问题答案: 不,是的。 不,它们不会以程序员可见的任何方式共享;进程可以独立地修改自己的变量副本,并且它们将在不影响其他进程(例如fork()父,兄弟姐妹或后代)的情况下进行更改。 但是,是的,OS实际上最初确实共享页面,因为fork实现了写时复制功能,这意味着只要没有任何进程修改页面,就可以共
问题内容: 我知道可以在Python中的各个模块之间共享全局变量。但是,我想知道这种可能性的程度以及原因。例如, global_mod.py mid_access_mod.py bot_modif_mod.py 即使所有模块都共享全局变量x,也将打印“无”。为什么会这样呢?似乎x是在mew()分配给bot_modif_mod.py之前在mid_access_mod.py求值的。 问题答案: 发生这
我看到“Dart是一种单线程编程语言”,所以我认为使用全局变量在函数之间传递数据安全吗 我还看到“Dart提供隔离”,并且可以在多核上运行。这意味着如果不同的分离株访问相同的全局变量,这可能是危险的,对吧? 安全吗?如果没有,有什么方法可以在函数之间共享对象,而不将它们作为参数传递呢? 更新: 根据“Florian Loitsch”的回答,我刚刚写了一个关于隔离的全局变量的测试: 您可以看到一个隔
问题内容: 我对诺言有很多困惑。是同步还是异步? 问题答案: 传递函数 为 无极构造同步运行,但任何依赖于它的分辨率将异步调用。即使promise立即解决,任何处理程序都将异步执行(类似于when )-主线程首先运行到末尾。 不管您的Javascript环境如何,都是如此-无论您是在Node还是浏览器中。
问题内容: 在我的应用程序(node / express / redis)中,我使用一些代码同时更新数据库中的多个项目: 我可以确定在方法返回之前将执行所有这些操作吗?我关心的是异步处理。由于我不在db操作中使用回调函数,因此可以吗? 问题答案: 使用MULTI / EXEC命令创建命令队列并连续执行它们。然后使用回调发送回连贯的响应(成功/失败)。请注意,您必须使用Redis的AOF来避免这种情
问题内容: 我想使用ctypes在库中映射一个声明为全局值的int值。 目前,我可以像这样加载库: 并成功映射了许多功能。但是,出于错误检查的目的,其中许多设置了变量,因此我也需要访问该变量。但是,如果我尝试访问它,则会得到: 当然,它不是函数指针,尝试调用它会导致段错误。 在主头文件和API头文件中声明为。 Objdump将符号显示为: 问题答案: ctypes文档中有一节关于访问dll中导出的