gpt4 book ai didi

multithreading - 用户级线程无锁编程的实用性

转载 作者:行者123 更新时间:2023-12-04 06:37:51 25 4
gpt4 key购买 nike

据我所知,与基于时间片的调度程序抢占相反,纯用户级线程 (ULT) 具有将处理器让给其他线程的属性。然而,从我上网的过程中,我看到我们现在有几种抢占式用户线程机制。

牢记这一点,想开始讨论在用户级线程上进行无锁编程的好处。我的理解是,无论是否存在抢占式调度程序,无锁编程的性能都应该超过基于互斥/信号量的程序。

但是,我还是一头雾水;由于互斥体上的获取操作在没有争用的情况下也采用快速路径,因此性能提升不需要足够吸引人来迁移到无锁方法。

在信号量的情况下,系统调用的调用会导致上下文切换,因此无锁方法可以看作是更好的选择。

请针对两种情况提出建议 - ULT 配备抢占机制和不配备抢占机制。

最佳答案

这不是一个容易回答的问题,因为它很笼统,它会归结为您的要求是什么。

我最近一直在处理考虑使用无锁结构的系统,但是当我们坐下来写下我们的要求时,我们意识到它们实际上不是我们想要的。我们的系统并不真正需要它们,事实上锁定对我们有帮助,因为我们通常有一个生产者/消费者架构,如果没有生产任何东西(即没有任何东西被添加到队列中)那么消费者应该是空闲的(即被阻塞) .

我最近更详细地写了这篇文章: http://blog.chrisd.info/a-simple-thread-safe-queue-for-use-in-multi-threaded-c-applications/

关于multithreading - 用户级线程无锁编程的实用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20742101/

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