- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道进程间通信 (ipc) 有几种方法,例如:
但是我无法找到将这些机制相互比较并指出它们在不同环境中的好处的列表或论文。
例如,我知道如果我使用一个由进程 A 写入并由进程 B 读出的文件,它可以在任何操作系统上运行并且非常健壮,另一方面 - 为什么我不应该使用 TCP 套接字?有没有人概述在哪些情况下哪种方法最合适?
1 Câu trả lời
长话短说:
当进程竞争稀缺资源时,使用锁文件、互斥体、信号量和屏障。它们以类似的方式运行:多个进程尝试获取一个同步原语,其中一些获取同步原语,其他的进入休眠状态,直到原语再次可用。使用信号量来限制使用资源的进程数量。使用互斥量将数量限制为 1。
您可以通过使用非阻塞线程安全数据结构来部分避免使用同步原语。
当进程需要交换数据时,使用信号、队列、管道、事件、消息、unix 套接字。信号和事件通常用于通知进程某事(例如,unix 终端中的 ctrl+c
向进程发送 SIGINT
信号)。管道、共享内存和 unix 套接字用于传输数据。
使用套接字进行联网(或者,正式地说,用于在位于不同机器上的进程之间交换数据)。
长话短说:看看 Tanenbaum 和 Bos 的《现代操作系统》 一书,即 IPC 章节。该主题非常广泛,无法在列表或论文中完全涵盖。
关于sockets - 我应该在哪个时刻使用哪种进程间通信(ipc)机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40005935/
Theo tài liệu Android, vòng đời hoạt động như sau: onCreate() onStart() onResume() onPause() onStop() onDestroy() Câu hỏi là,
Tôi có một lớp với nhiều cột, nhưng câu hỏi này chỉ cần ba cột trong số đó: ---------------------------------------- | start_date | start_time
Cho hai ứng dụng web chạy trên cùng một Tomcat 6. Nếu bạn thực hiện lệnh gọi http từ ứng dụng này sang ứng dụng khác, Tomcat có "ngắt mạch" lệnh gọi hay sẽ đợi trên Internet trước khi thực hiện lệnh gọi không?
Tôi là một lập trình viên xuất sắc, rất giỏi!