pthread_win32下的 pthread_t与posix的pthread_t的不同。
我以为pthread_win32 完全兼容posix 的pthread呢,结果发现,至少有一个地方不同,pthread_t的类型。
posix下pthread_t的类型是:
typedef unsigned long int pthread_t; //come from /usr/include/bits/pthread.h //用途:pthread_t用于声明线程ID。 //sizeof (pthread_t) =4;
而pthread_win32 是:
/* * Generic handle type - intended to extend uniqueness beyond * that available with a simple pointer. It should scale for either * IA-32 or IA-64. */ typedef struct { void * p; /* Pointer to actual object */ unsigned int x; /* Extra information - reuse count etc */ } ptw32_handle_t; typedef ptw32_handle_t pthread_t;
这样就存在一点不兼容的问题了。
void * p 可以看做是posix的pthread_t 的 类型,但是多了一个 x,额外的信息,重用计数器。其大小就是4个字节了。
不知道还有没有其他的不同之处。至少暂时 还是非常好的。
------------------------------------------------------------------------------------------------
一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。