要写一个可移植的代码库,但是多线程的移植不知道怎么处理
要写一个可移植的代码库,但是多线程的移植不知道怎么处理
应该是一个比较常见的问题,但是多线程开发的少还是没有经验,由于代码库可能应用范围比较广(嵌入式的系统有很多不只linux。。。),所以希望多线程这部分能写的尽量与平台无关一些,或者移植起来比较方便,希望能有一个比较轻量级的多线程库,不知道有没有好的办法,谢谢大家
[解决办法]
pthread够轻量了吧
windows下的pthread-win32不能够模拟Linux的所有pthread线程函数,不过也够用了,可以使用winpthreads替代,模拟的情形覆盖较多,但后者无法使用vc编译
[解决办法]
boost
[解决办法]
#ifdef WIN32void Lock(CRITICAL_SECTION *l) { EnterCriticalSection(l);}void Unlock(CRITICAL_SECTION *l) { LeaveCriticalSection(l);}#elsevoid 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