您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Linux >> linux 多线程编程, 实现多线程之间的 链表操作

linux 多线程编程, 实现多线程之间的 链表操作

来源:网络整理     时间:2016/8/4 19:55:05     关键词:

关于网友提出的“ linux 多线程编程, 实现多线程之间的 链表操作”问题疑问,本网通过在网上对“ linux 多线程编程, 实现多线程之间的 链表操作”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: linux 多线程编程, 实现多线程之间的 链表操作
描述:

多线程链表linuxmalloc

问题1:  线程在添加链表节点的时候, 使用 malloc 动态创建空间, 这个空间地址是 所有线程共享的,还是 各自线程 独立的,如果是独立的 ,就不能共享  链表的数据了。
问题2:如果是共享的,我一个提供者A线程 不断的向 链表中添加 节点数据, 同时提供者A自己实时打印节点数据,  消费者B线程 同时也不断的在读链表中的节点数据打印, 但是两个打印的结果不同,同一地址上的数据不一样,是我互斥没做好导致的数据改变了吗?
求大神指导
解决方案1:

同步要保证:
读数据的时候不要写,写数据的时候不要读,同时读一般不会有问题
如果没有使用读写同步的三个线程,一个写,两个读,两个读的线程读出的数据有可能不完全一样

解决方案2:

你的问题2已经回答了你的问题1.至于为啥没有同步,肯定是同步没做好,线程的执行顺序默认是操作系统决定的了。


以上介绍了“ linux 多线程编程, 实现多线程之间的 链表操作”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3110506.html

相关图片

相关文章