【问题标题】:Can I use semaphores between a java desktop application and a php website?我可以在 java 桌面应用程序和 php 网站之间使用信号量吗?
【发布时间】:2018-10-16 19:58:14
【问题描述】:

我有一个生成 Web 应用程序的 java 程序。此 Web 应用程序的最终目的是检索需要发送回 Java 应用程序的身份验证令牌。

我在我的操作系统类中了解了信号量,并且想知道是否可以在用不同编程语言编写的两个不同进程之间使用信号量/共享内存。请原谅我的天真,但这个概念对我来说还是相当新的,我只将信号量用于用相同语言编写的程序。

如果可能的话,我们将不胜感激。

如果不是,在 PHP Web 应用程序和 Java 桌面应用程序(最好不使用数据库)之间发送少量数据的最佳选择是什么?

我正在运行 Windows 10。

【问题讨论】:

  • 哪个操作系统?您可以尝试使用命名管道或类似的东西
  • Windows 10 *已添加到帖子

标签: java php semaphore shared-memory


【解决方案1】:

信号量只是计数器,二进制信号量是 0,1 计数器,或者实际上只是一个锁。通常,您在带线程的进程中使用它们,或者在使用 OS 设备(如管道或共享内存或低级 OS 信号量)的进程之间使用它们。

我认为您可以使用共享服务(webservice、rester、消息传递等)来实现类似的东西,它做同样的事情——锁的自动 incr/decr。但是,您必须理清等待的语义,因为典型的信号量可能有一个 while() 循环围绕它并等待它再次空闲。

我认为您最好考虑一种更简单的方法?

【讨论】:

  • 好吧,我在想我可以在我的 java 程序中创建一个新线程,该线程被信号量阻塞,直到数据在共享内存中时 PHP 进程解除阻塞
猜你喜欢
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 2014-03-10
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多