PHP 7.4.25 Released!

pht\Vector::lock

(PECL pht >= 0.0.1)

pht\Vector::lockПолучает блокировку мьютекса вектора

Описание

public pht\Vector::lock(): void

Метод получает блокировку мьютекса, связанную с вектором. Блокировка мьютекса всегда должна быть получена при манипулировании вектором, если он используется несколькими потоками.

Мьютексные блокировки структур данных межпоточного взаимодействия (ITC) не реентерабельны. Попытка повторно получить уже полученную блокировку мьютекса тем же потоком приведёт к взаимной блокировке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает.

Примеры

Пример #1 Блокировка мьютекса вектора

<?php

use pht\{ThreadVector};

$thread = new Thread();
$vector = new Vector();

$thread->addFunctionTask(function ($vector) {
    
$vector->lock();
    
$vector[] = 1;
    
$vector->unlock();
}, 
$vector);

$thread->start();

// $vector в настоящее время используется несколькими потоками
$vector->lock();
$vector[] = 2;
$vector->unlock();

$thread->join();

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top