PHP pthreads v3 의 Volatile 소개 및 사용 방법 예시

2799 단어 PHPpthreadsVolatile
본 고 는 PHP pthreads v3 의 Volatile 소개 와 사용 방법 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
pthreads v3 에서 Threaded 대상 의 자동 불변성 개념 을 도 입 했 기 때문에 구조 함수 에서 구성원 에 게 배열 로 설정 할 때 다른 곳 에 서 는 구성원 을 다시 고 칠 수 없습니다.
예 는 다음 과 같다.

<?php

//pthreads v3   Threaded          
//        Threaded  ,           
//  ,           ,            ,        Volatile  
class Task extends Thread
{
  private $data;
  private $result;

  public function __construct()
  {
    $this->data = 'abc';
    var_dump($this->data);

    //       ,         
    $this->data = 'def';
    var_dump($this->data);

    //   data      ,      Volatile  
    $this->data = [1, 2, 3];
    var_dump($this->data);

    //      data   ,     
    //      Threaded   (Volatile   Threaded),            
    $this->data = [4, 5, 6];
    var_dump($this->data);

    //  ,           ,  Threaded      Volatile  
    $this->result = (array)[1, 2, 3];
    //       
    var_dump($this->result);
    $this->result = (array)[4, 5, 6];
    //      
    var_dump($this->result);
  }
}

new Task();
우리 가 멤버 들 을 다시 고 쳐 쓰 면 잘못 보고 할 것 이다.

멤버 데 이 터 를 고 쳐 써 야 한다 면 위의 명시 적 강제 전환 을 제외 하고 또 다른 방법 은 Volatile 류 를 계승 하 는 것 이다.
예 는 다음 과 같다.

<?php

//Volatile         
class Task extends Volatile
{
  private $data;

  public function __construct()
  {
    //   Volatile  ,         Threaded   ,    
    $this->data = [
      'a' => 123,
      'b' => 456,
      'c' => 789,
    ];
    var_dump($this->data);

    //           
    $this->data = [
      'a' => 'aaa',
      'b' => 'bbb',
      'c' => 'ccc',
    ];
    var_dump($this->data);

    //  Threaded     ArrayAccess  ,           ,  Volatile  
    echo $this->data['a'], "\t", $this->data['b'], "\t", $this->data['c'], "
"; foreach ($this->data as $item) { echo $item, "
"; } } } new Task();
결 과 는 다음 과 같다.

더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기