我正在使用pthreads创建多个线程。每个线程在某一时刻都尝试使用get_posts()
如下:
$args = array(
'post_type' => 'post',
'post_status' => 'any'
);
$posts_list = get_posts($args);
但是,我最终遇到以下崩溃:
HP Fatal error: Call to a member function get() on a non-object in C:\dev\wordpress\wp-includes\cache.php on line 123
请注意,当我get_posts()
在没有线程的代码段中进行相同的调用时,我没有崩溃。
现在,我的问题是,如何get_posts()
从pthread线程中调用?如果我做不到,那有什么选择呢?
谢谢。
更新资料
这是示例代码
class My_Thread extends Thread {
public function run() {
/* DO SOME STUFF HERE */
$args = array(
'post_type' => 'post',
'post_status' => 'any'
);
$posts_list = get_posts($args); // <------ This is causing the crash
}
}
// Create a array
$threads = array();
//Iniciate Miltiple Thread
foreach ( range("A", "C") as $i ) {
$threads[] = new My_Thread($i);
}
// Start The Threads
foreach ($threads as $thread) {
$thread->start();
}
get_posts()
在没有线程的代码段中进行相同的调用时,我不会崩溃 ”;所以我的get_posts($args)
电话没问题。此外,目前还没有需要保护的代码,我只是通过从WordPress DB中读取get_posts($args)
。