我的环境是C++ for Linux-Xenomai on ARM gnueabi。在成功生成一个新的pthread之后,我发现这个类实例超出了线程的作用域。从线程访问类实例对象、变量、结构等会返回任意值,并且经常会出现“分割错误”。
在花了几天的时间在网上寻找解决方案后,我进行了猜测,并尝试使用'this‘指针作为pthread_create的参数。瞧!类实例对线程是可见的。问题是为什么?
w = new StreamWriter(fileStream)) w.Write(message); }当我同时从几个线程尝试它时为什么锁不能阻止线程同时访问文件?
如果线程调用相同的实例或对同一文件调用不同的实例,这并不重要。我还认为这可能是因为在Windows中写入文件时出现了一些延迟,但在Linux上也发生了同样的事情。