C++多线程同时读写变量

 关于同时读写变量的问题:

多个线程同时写一变量会否造成问题【c++吧】_百度贴吧

  • Saingel :不一定,要看哪种了,stdstring那种随写入操作而内存位置或大小变更的对象肯定会有问题,如果是在固定的内存上写,不写出界基本没问题,最多运算结果会错
//Sample 同时读写变量
#include <pthread.h>
#include <string.h>
#include <stdio.h>
#include <time.h>

 void   * pp( void   * arg)
 {
    while (1) {
        //printf("%s\n", (char *)arg);
		int nNum = *((int*)arg);
		printf("%d\n", nNum);
        sleep(1);
    }
    return NULL;
}

 void   * pp22( void   * arg)
 {
    while (1) {
		++(*((int*)arg));
        sleep(1);
    }
    return NULL;
}

main()
 {
    pthread_t pid, pid2;
	//char buff[26] =  {0};
	//strcpy(buff, "hello world");
    //pthread_create(&pid, NULL, pp, buff);
	int nnumber = 0;
	pthread_create(&pid, NULL, pp, &nnumber);
	pthread_create(&pid2, NULL, pp22, &nnumber);
    while (1) {
        //printf("I am main thread\n");
		++nnumber;
        sleep(1);
    }
}

以上代码确实能正常运行。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值