答案:因为 pthread_create() 函数要求的线程函数必须满足如下格式:
void *ThreadFunc(void *args);
对于普通类成员函数、虚函数,他们实际上都是包含了调用他们的对象的 this 指针,即:经过编译器优化,线程函数变为如下所示:
void *(类名)+ ThreadFunc(this, void *args);
这就导致了该函数的格式是不符合 pthread_create() 对线程函数的要求的。故,如果类成员函数做为线程函数时,必须是静态的。
(SAW:Game Over!)