Threads can share resource with each other, but processes can’t. Communicating to another processes should use IPC methods. Common IPC methods in Linux are pipe, shared memory, signal, message queue and domain socket.
This article will introduce shared memory and message queue. The most efficiency is shared memory (than domain socket).
Originally, BPF is a tool for analyzing network traffic. After years, eBPF has been improved to be used for non-networking purposes, such as for attaching eBPF programs to various tracepoints. wiki
Comparing with XDP (driver layer tool for network, XDP test), BCC provides a tool chain for high level languages. With this tool, developers can implement their own analyzing tools to manage BPF tools by Python, Lua or other high level languages.
This article will show how to config and run a test code.
This article will distinguish Synchronous and Asynchronous. I just want to say forget your Chinese ……
API and callback
While the API receiving the callback remains on the stack, you would expect that the callback had been invoked on each element.
in the same thread
Callback is invoked after a function returns, or at least on another thread’s stack. while the API receiving the callback remains on the stack, the callback may not have been called, since it’s waiting for the connection to complete.
Therefore, if you want to design asynchronous APIs, keep your threads safety.