【C】——线程引入 pthread_self 和 pthread_equal 原因 ——解决不同平台的问题!
2013-10-24 21:07
309 查看
1、引入pthread_equal的原因:
在线程中,线程ID的类型是pthread_t类型,由于在Linux下线程采用POSIX标准,所以,在不同的系统下,pthread_t的类型是不同的,比如在ubuntn下,是unsigned long类型,而在solaris系统中,是unsigned int类型。而在FreeBSD上才用的是结构题指针。 所以不能直接使用==判读,而应该使用pthread_equal来判断。
2、引入pthread_self的原因:
在使用pthread_create(pthread_t *thread_id,NULL,void* (*fun) (void *),void * args);虽然第一个参数中已经保存了线程ID,但是,前提是主线程首先执行时,才能实现的,而如果不是,那么thread指向一个未出划的变量。那么才子线程想使用时,应该使用pthread_self();
在线程中,线程ID的类型是pthread_t类型,由于在Linux下线程采用POSIX标准,所以,在不同的系统下,pthread_t的类型是不同的,比如在ubuntn下,是unsigned long类型,而在solaris系统中,是unsigned int类型。而在FreeBSD上才用的是结构题指针。 所以不能直接使用==判读,而应该使用pthread_equal来判断。
2、引入pthread_self的原因:
在使用pthread_create(pthread_t *thread_id,NULL,void* (*fun) (void *),void * args);虽然第一个参数中已经保存了线程ID,但是,前提是主线程首先执行时,才能实现的,而如果不是,那么thread指向一个未出划的变量。那么才子线程想使用时,应该使用pthread_self();
相关文章推荐
- 转:线程引入 pthread_self 解决不同平台的问题!
- 同一线程多次创建 的 线程资源释放问题在每个线程的一开始,用pthred_detach(pthread_self())来使自己detach掉
- jmeter解决不同线程组之间传递参数问题
- oracle排序,出现页数不同数据却重复问题的原因及解决办法
- pthread创建线程及遇到问题解决
- unity5 assetbundle 发布资源平台的大坑。程序发布成exe后执行与编译器内不同的问题解决。
- linux 线程操作问题undefined reference to 'pthread_create'的解决办法(cmake)
- 同一聚合工程下不同module之间无法自动引入问题解决
- qt中解决不同平台间编码问题以及登录窗口写法
- 创建线程时,undefined reference to 'pthread_create'问题解决
- 同一线程多次创建 的 线程资源释放问题在每个线程的一开始,用pthred_detach(pthread_self())来使自己detach掉
- 线程问题——同样的程序,在ubuntu中运行和嵌入式中PID表现不同的原因
- linux 线程操作问题undefined reference to 'pthread_create'的解决办法(cmake)
- c# 控件文本通用代理委托设置,解决不同线程间设置控件问题
- 关于Android DES加密算法在不同平台加密结果不同的问题的一个解决方法
- 线程安全问题出现的原因和解决方法
- 线程正在被中止问题的原因及解决
- 2003 WDS结合小兵封装工具在不同硬件平台下部署XP(解决无法找到映像的问题)
- 解决 Updatedata不能更新、报错问题。(主要是不同的类、线程中出现的)
- 经典的c++下面使用pthread_create问题的解决