当前位置: 技术问答>linux和unix
phtread_create参数传递问题
来源: 互联网 发布时间:2017-05-20
本文导语: 各位朋友好, 本人最近学习linux多线程编程,发现按照如下方式创建线程,在给线程函数传参数时, 获得到的参数并非我期望的值。 我创建100个线程,第一个线程传递参数0,第二个线程传递1,一次类推,...
各位朋友好,
本人最近学习linux多线程编程,发现按照如下方式创建线程,在给线程函数传参数时, 获得到的参数并非我期望的值。
我创建100个线程,第一个线程传递参数0,第二个线程传递1,一次类推,第100个传递99,程序逻辑没发现什么问题,但是实际执行结果却并非如此。
目前知道2种方式可以达到期望结果;
1, 每个thread参数 对应一个变量,具体是用一个数组, 数组中一个元素对应一个参数。
2, 加上sleep函数
以上2种本人觉得都有缺点, 不满意,希望有经验的朋友指导,多谢!
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include
#include
#define THREADSIZE 100
pthread_t thread[THREADSIZE];
pthread_mutex_t mutex;
void * start_fun ( void * arg)
{
int iarg = *(int*)arg;
pthread_t self = pthread_self();
printf("thread %u, with arg %d.n",self,iarg);
}
int main(int argc, char * argv[])
{
int i =0;
for (i; i
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
©2012-2021,