0
不調用線程函數「get_singleton」函數。我甚至沒有在屏幕上看到任何錯誤。線程函數未被調用。語法有什麼問題
class singleton{
private: singleton(){cout<<"constructor called";}
singleton(singleton&);
singleton& operator =(singleton &);
~singleton();
public: static singleton *s;
static singleton* get_singleton();
static pthread_mutex_t t;
};
pthread_mutex_t singleton::t=PTHREAD_MUTEX_INITIALIZER;
singleton* singleton::s=NULL;
singleton* singleton::get_singleton()
{
cout<<"get_singleton called";
if(s==NULL)
{
usleep(300);
s=new singleton();
}
return s;
}
int main(int argc, char *argv[])
{
int err;
pthread_t t1,t2;
err=pthread_create(&t1,NULL,(void *(*)(void *))singleton::get_singleton,NULL);
if(err!=0)
cout<<"unable to create thread";
err=pthread_create(&t2,NULL,(void *(*)(void *))singleton::get_singleton,NULL);
if(err!=0)
cout<<"unable to create thread";
cout<<"end of func"<<endl;
return 0;
}
在調用「get_singleton」函數時,「pthread_create」api中是否有任何錯誤。
在此先感謝。
該簽名具有('void *')返回類型,所以沒有問題。 – Mat 2014-10-11 09:57:22
是的,你是對的,我的錯 – 2014-10-11 09:58:09