pht\Vector::lock

(PECL pht >= 0.0.1)

pht\Vector::lockAcquires the vector's mutex lock

说锟斤拷

public pht\Vector::lock ( void ) : void

This method will acquire the mutex lock associated with the vector. The mutex lock should always be acquired when manipulating the vector if it is being used by multiple threads.

The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant. Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a deadlock.

锟斤拷锟斤拷

锟剿猴拷锟斤拷没锟叫诧拷锟斤拷锟斤拷

锟斤拷锟斤拷值

No return value.

锟斤拷锟斤拷

Example #1 Locking a vector's mutex lock

<?php

use pht\{ThreadVector};

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

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

$thread->start();

// $vector is currently being used by multiple threads
$vector->lock();
$vector[] = 2;
$vector->unlock();

$thread->join();