要写一个可移植的代码库,但是多线程的移植不知道怎么处理
要写一个可移植的代码库,但是多线程的移植不知道怎么处理
应该是一个比较常见的问题,但是多线程开发的少还是没有经验,由于代码库可能应用范围比较广(嵌入式的系统有很多不只linux。。。),所以希望多线程这部分能写的尽量与平台无关一些,或者移植起来比较方便,希望能有一个比较轻量级的多线程库,不知道有没有好的办法,谢谢大家
------解决方案--------------------
pthread够轻量了吧
windows下的pthread-win32不能够模拟Linux的所有pthread线程函数,不过也够用了,可以使用winpthreads替代,模拟的情形覆盖较多,但后者无法使用vc编译
------解决方案--------------------boost
------解决方案--------------------C/C++ code
#ifdef WIN32
void Lock(CRITICAL_SECTION *l) {
EnterCriticalSection(l);
}
void Unlock(CRITICAL_SECTION *l) {
LeaveCriticalSection(l);
}
#else
void Lock(CRITICAL_SECTION *l) {
pthread_mutex_lock(l);
}
void Unlock(CRITICAL_SECTION *l) {
pthread_mutex_unlock(l);
}
#endif
#ifdef WIN32
_beginthread((void(__cdecl *)(void *))thdPack ,0,(void *)1);
#else
pthread_t threads
rc=pthread_create(&(threads),NULL,thdPack ,(void *)902);if (rc) printf("%d=pthread_create error!\n",rc);
#endif