pthreads v3下一些坑和需要注意的地方

2021-09-07 17:59:37 字數 2022 閱讀 3473

一、子執行緒無法訪問父執行緒的全域性變數,但父執行緒可以訪問子執行緒的變數

<?php 

class task extends thread

}//主線程中的全域性變數,子執行緒中是無法訪問的

//php中建立子執行緒,它會有乙個單獨的堆,執行在單獨的位址空間中

//並不能像有些語言中,子執行緒是可以訪問的到主線程中的變數的。

$num = 666;

$globals['test'] = 'test';

$t = new task();

$t->start() && $t->join();

//主線程可以訪問子執行緒的變數

var_dump($t->data);

結果如下:

二、子執行緒無法修改父執行緒的變數

<?php 

class task extends thread

public function run()

}$data = 'abc';

//我們這裡傳入的是引用

$t = new task($data);

$t->start() && $t->join();

//但是$data變數資料並沒改變

//這說明我們通過建構函式傳入task物件中的$data只是乙個拷貝

//子執行緒中並不能夠操作主線程中的變數

var_dump($data);

結果如下:

三、pthreads v3版本可以設定成員為匿名函式

<?php 

class task extends thread

param2 : \n";};}

public function run()

}$t = new task();

$t->start() && $t->join();

結果如下:

四、對於資料庫連線資源,我們需要宣告為靜態成員

<?php 

class task extends thread

public function run()

\t\n";}}

}$t = new task();

$t->start() && $t->join();

結果如下:

**修改如下:

<?php 

class task extends thread

return self::$db;

}public function run()

\t\n";}}

}$t = new task();

$t->start() && $t->join();

結果如下:

最後說明,不排除pthreads以後的版本公升級上面的有些問題不會出現。

我的php版本是7.2.4,pthreads的版本是3.1.7dev

總結一下一些知識。

1.利用css穿透 常見發生場景 假如我們需要通過input,type file 來上傳檔案,而這個input的預設樣式,可以說是非常地 不人道 所以我們希望通過一張,與這個input大小一樣,位置一致地蓋在上面。這個時候,顯然,這個時候點選,input是不會起作用的。就是因為img隔絕了click...

了解一下一些新詞or 舊詞

c2c consumer to consumer c2c實際是電子商務的專業用語,是個人與個人之間的電子商務。c2c即消費者間 因為英文中的2的發音同to,所以c to c簡寫為c2c。c指的是消費者,因為消費者的英文單詞是consumer,所以簡寫為c,而c2c即 consumer to cons...

CSS的一些案例和坑

style type text css ulli style body ul li li li li li li li li li li ul body 執行 效果 可以看到給li設定display inline block後元素排成了一行,但是每個之間出現間距 如果將 這樣寫 style type...