- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个简单的 C++ 应用程序,它在我的网络应用程序的后端生成报告(简单的 LAMP 设置)。问题是后端加载了一个大约需要 1.5GB 内存的数据文件。如果多个用户同时运行它,这将不会很好地扩展,所以我的想法是分成几个程序:
程序A是始终在服务器上运行的主要可执行文件,始终加载数据,并且可以实际运行报告。
程序 B 是从 php 生成的,它向程序 A 发出一个简单的请求以获取它需要的信息,并返回数据。
所以我的问题是: B 要求 A 做某事的良好机制是什么? 当 A 无事可做时,它应该如何工作?我真的不想轮询任务或以其他方式转动我的轮胎。
最佳答案
使用一个命名的互斥锁/事件,基本上它所做的是允许一个线程(在你的例子中是进程 A)坐在那里等待。然后进程 B 出现,需要完成一些事情,并向互斥锁/事件发出信号,这将唤醒进程 A,然后您继续。
如果您使用的是 Microsoft:
Linux 上的 Ipc 工作方式不同,但具有相同的功能:
或者,对于 C++ 部分,您可以使用多平台的 boost IPC 库之一。我不确定 PHP 有哪些可用的,但毫无疑问,它会有一些等效的东西。
关于c++ - C++中的进程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1343626/
根据 Android docs ,activity生命周期如下: onCreate() onStart() onResume() onPause() onStop() onDestroy() 问题是,
我有一门类(class)有很多专栏,但这个问题只需要其中三个: ---------------------------------------- | start_date | start_time
给定在同一个 Tomcat 6 上运行的两个 Web 应用程序。如果您从一个应用程序到另一个应用程序进行 http 调用,Tomcat 是否会“短路”此调用,或者它会在调用之前一直在 interweb
我是一名优秀的程序员,十分优秀!