gpt4 book ai didi

c - 实现 'thread-safe"链表

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:02 28 4
gpt4 key购买 nike

我正在编写一个应用程序,其中多个链接列表在线程之间共享。对链表的操作和往常一样:查找、插入、删除、修改节点内容。 我遇到了 ann 实现来保持链接列表操作的整个过程“线程安全”。 http://www.cs.cf.ac.uk/Dave/C/node31.html#SECTION003100000000000000000

但想知道我是否可以按如下方式进行:

lock(mutex)
link list operation
unlock(mutex)

即我将一个互斥锁与每个链接列表相关联,并在我开始操作时像上面那样使用它

不胜感激

最佳答案

可以这样做,但是你牺牲了 active ,因为链表现在一次只能被一个线程访问——这可能会导致列表成为你的瓶颈程序。

考虑链表的接口(interface)(线程可以调用哪些方法)以及如何保证链表安全,同时允许尽可能多的线程同时使用它。

例如,如果您将列表用作队列,一个线程可以将列表尾部的项目入队,而另一个线程将项目出队。

创建线程安全实用程序面临很多挑战,但您应该尽可能地精打细算,以确保您不会牺牲最初通过并行化您的软件而尝试获得的性能!玩得开心!

关于c - 实现 'thread-safe"链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6316660/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com