CXLVI. Semaphore, Shared Memory and IPC Functions
简介
This module provides wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC).
Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource.
This module provides also shared memory functions using System V shared memory. Shared memory may be used to provide access to global variables. Different httpd-daemons and even other programs (such as Perl, C, ...) are able to access this data to provide a global data-exchange. Remember, that shared memory is NOT safe against simultaneous access. Use semaphores for synchronization.
表254.Limits of Shared Memory by the Unix OS
| SHMMAX | max size of shared memory, normally 131072 bytes |
| SHMMIN | minimum size of shared memory, normally 1 byte |
| SHMMNI | max amount of shared memory segments on a system, normally 100 |
| SHMSEG | max amount of shared memory segments per process, normally 6 |
The messaging functions may be used to send and receive messages to/from other processes. They provide a simple and effective means of exchanging data between processes, without the need for setting up an alternative using Unix domain sockets.
注意: 本扩展模块在 Windows 平台下不可用。
需求
要编译本扩展模块无需外部库文件。
安装
Support for this functions are not enabled by default. To enable System V semaphore support compile PHP with the option --enable-sysvsem. To enable the System V shared memory support compile PHP with the option --enable-sysvshm. To enable the System V messages support compile PHP with the option --enable-sysvmsg.
运行时配置
这些函数的行为受 php.ini 的影响。
表255.Semaphore Configuration Options
| Name | Default | Changeable | Changelog |
|---|---|---|---|
| sysvmsg.value | "42" | PHP_INI_ALL | |
| sysvmsg.string | "foobar" | PHP_INI_ALL |
有关 PHP_INI_* 常量进一步的细节与定义参见附录H, php.ini 配置选项。
资源类型
预定义常量
以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。
目录
- ftok Convert a pathname and a project identifier to a System V IPC key
- msg_get_queue Create or attach to a message queue
- msg_receive Receive a message from a message queue
- msg_remove_queue Destroy a message queue
- msg_send Send a message to a message queue
- msg_set_queue Set information in the message queue data structure
- msg_stat_queue Returns information from the message queue data structure
- sem_acquire Acquire a semaphore
- sem_get Get a semaphore id
- sem_release Release a semaphore
- sem_remove Remove a semaphore
- shm_attach Creates or open a shared memory segment
- shm_detach Disconnects from shared memory segment
- shm_get_var Returns a variable from shared memory
- shm_put_var Inserts or updates a variable in shared memory
- shm_remove_var Removes a variable from shared memory
- shm_remove Removes shared memory from Unix systems
add a note
User Contributed NotesSemaphore, Shared Memory and IPC Functions

SDO_DAS_Relational::executeQuery