线程编程问题,

线程错误一:
问题:在线程间的传递参数时,指针会造成数据丢失,只能值传递。这里不是不能访问另一线程内存的问题,而是传递到另一线程时,指针保存的地址发生了变化,已经不是原来的地址。这是出问题根本。

方法:这时可以找一个非指针类型的变量(无符号整形)保存本线程的指针地址,在另一个线程中使用强制类型转换来读取内存中的内容。
但是要注意本线程是否会修改指针指向的的内存,如果有可能,则需要使用相应措施保证在另一线程读取前,本线程内存内容不被更改(让本线程sleep,或者阻塞)。

测试:共享变量在不同线程中的情况:
本线程数据与内存地址:40 01 01 10 01 01 01 10 10 01 01 10 2db6e
另一线程读取数据与内存地址:00 00 00 00 00 00 00 00 00 00 00 00 2f480
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值