# sem_acquire

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_acquire — Acquire a semaphore

### 说明

sem_acquire(SysvSemaphore `$semaphore`, bool `$non_blocking` = `false`): bool

sem_acquire() by default blocks (if necessary) until the semaphore can be acquired. A process attempting to acquire a semaphore which it has already acquired will block forever if acquiring the semaphore would cause its maximum number of semaphore to be exceeded.

After processing a request, any semaphores acquired by the process but not explicitly released will be released automatically and a warning will be generated.

### 参数

`semaphore`

  `semaphore` is a semaphore obtained from sem_get().

`non_blocking`

  Specifies if the process shouldn't wait for the semaphore to be acquired. If set to `true`, the call will return `false` immediately if a semaphore cannot be immediately acquired.

### 返回值

成功时返回 `true`， 或者在失败时返回 `false`。

### 更新日志

版本 | 说明
--- | ---
8.0.0 | `semaphore` expects a SysvSemaphore instance now; previously, a resource was expected.

### 参见

- sem_get() - Get a semaphore id
- sem_release() - Release a semaphore

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open