1.创建开发目录。 在你工作目录下创建一个项目目录。例如:lab。 2.创建python虚拟环境。 在项目目录下使用如下命令创建一个 venv 环境: 3.初始化langch...
1.创建开发目录。 在你工作目录下创建一个项目目录。例如:lab。 2.创建python虚拟环境。 在项目目录下使用如下命令创建一个 venv 环境: 3.初始化langch...
Parcelable 是 Android 的进程/组件间高性能序列化协议,主要用于把对象写入 Parcel,在 组件间传递(Intent/Bundle)、跨进程通信(Bind...
Serializable 是 Java/Android 里的“对象可被序列化”的标记接口:让对象能被转换成字节流(写入文件/数据库/网络传输),以及在需要时再还原成对象。它在...
信号量本身不能传递复杂数据。它只能传递“0”或“1”(或者更大的整数)。 所以,单靠信号量来“通信”,就像发电报,或者用莫斯密码。 实验设计:用信号量实现“打乒乓球” 我们不...
这是 IPC 的终极形态,也是也是目前互联网的基石。 我们将使用 Unix Domain Socket (UDS),因为它在本地通信中比 TCP/IP 更快、更高效(不需要经...
今天将使用 POSIX Message Queue (POSIX 消息队列)。 相比于管道(字节流)和共享内存(原始内存块),消息队列最大的优点是“有边界”和“有优先级”。 ...
我们要打破“进程隔离”的铁律。 Shared Space: 创建一块两个进程都能看到的“公共黑板”(共享内存)。 one.c (读): 盯着黑板,每隔 1 秒念出黑板上的数字...
管道有 pipe() (匿名管道)和 mkfifo (命名管道)。不能直接用 pipe() (匿名管道),但可以用 mkfifo (命名管道)。** 为什么不能用 pipe(...
one.c two.c 编译两个程序:gcc one.c -o process_onegcc two.c -o process_two 运行接收者 (one):./proce...
进程间不能直接访问对方内存实验。one.c two.c 你需要打开两个终端来配合操作。 终端 1 (运行one) 请在当前终端或新终端运行以下命令: 它会打印出一个地址,比如...
AndroidManifest.xml: App: MainActivity: 接收端App:
MainActivity: LikeNotificationChannel: TopNotificationChannel: HotNotificationChannel:
ScreenStateEnum Page ScreenState ScreenStateManager ScreenEventManager OverlayService
引入库: App: AppLifecycleMonitor: AppLifecycleObserver: BorrowId: ScreenState: ScreenState...
C++ 结构体 (Struct) 的详细介绍 1. 概念与目的 在 C++ 中,结构体 (struct) 是一种用户定义的复合数据类型 (Composite Data Typ...
sizeof 1. 概念与目的 sizeof 是 C++ 中的一个一元运算符 (unary operator),也是一个关键字。它的主要目的是查询一个数据类型或一个表达式的类...
数组内存分配 在 C++ 中,数组的核心特性之一是其元素在内存中是连续存储 (Contiguously Stored) 的。这意味着数组的各个元素在内存地址上是一个挨着一个紧...
多维数组 1. 什么是多维数组? 在 C++ 中,严格来说并没有原生的“多维数组”类型。我们所说的多维数组,实际上是“数组的数组” (Array of Arrays)。最常见...
C++ 数组越界 1. 什么是数组和索引? 在 C++ 中,数组(Array)是一段连续的内存空间,用于存储相同类型的一系列元素。要访问数组中的特定元素,我们使用索引(Ind...
C++ 数组初始值 在 C++ 中,数组是一系列相同类型元素的集合,存储在连续的内存空间中。数组的初始化是指在创建数组时为其元素赋予初始值的过程。数组元素的初始值取决于数组的...