线程错误一:
问题:在线程间的传递参数时,指针会造成数据丢失,只能值传递。这里不是不能访问另一线程内存的问题,而是传递到另一线程时,指针保存的地址发生了变化,已经不是原来的地址。这是出问题根本。
方法:这时可以找一个非指针类型的变量(无符号整形)保存本线程的指针地址,在另一个线程中使用强制类型转换来读取内存中的内容。
但是要注意本线程是否会修改指针指向的的内存,如果有可能,则需要使用相应措施保证在另一线程读取前,本线程内存内容不被更改(让本线程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