c语言多线程有什么作用,C语言多线程使用同一线程函数,传递的结构体参数会相互影响...

结构参数均为局部变量。我希望达到的效果是每个子线程并行执行,相互不影响执行状态。

下面代码是在多线程中执行的:

线程二pthread_t listid_thread[l_size];

for (int _i = 0; _i < l_size; _i++)

{

struct ListingInfos listing_infos;

//创建线程

int temp;

if ((temp = pthread_create(&listid_thread[_i], NULL, ListThread, &listing_infos)) != 0) {

printf("【%d】listid_thread【%d】创建失败!\n", cp, _i);

}

else {

printf("【%d】listid_thread【%d】被创建\n", cp, _i);

}

}

for (int _i = 0; _i < l_size; _i++)

{

/*等待线程结束*/

if (listid_thread[_i] != 0)

{

//pthread_join(listid_thread[_i], NULL);

pthread_detach(listid_thread[_i]);

printf("【%d】listid_thread【%d】已经结束\n", cp, _i);

}

}

以上代码是本身是在多线程,又会循环创建多线程,创建以下的线程

线程三void *ListThread(void *arg)

{

struct ListingInfos *listing_infos;

listing_infos = (struct ListingInfos *)arg;

printf("【%d】listid_thread【%d】线程中获取ID:%d\n", listing_infos->cp, listing_infos->thread, listing_infos->Id);

...........

}

我期待的以上代码的打印结果为 每次的ID不一样,例如1、2、3,但是由于在线程三种执行时间较长,打印出来的结果不是期待的结果,例如:2、2、3

请问如何解决多线程中,不同线程之间的相互影响参数的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值