gpt4 book ai didi

c - 从多个线程独占访问资源

转载 作者:IT王子 更新时间:2023-10-29 00:59:09 25 4
gpt4 key购买 nike

对于线程,是否有等同于 SIGSTOP 和 SICONT 的东西?我正在使用 pthreads。谢谢

编辑:我正在线程之间实现一种粗略的文件访问同步形式。因此,如果一个文件已经被一个线程打开,而另一个线程想要再次打开它,我需要在第二个线程执行时停止或暂停它。当第一个线程完成其工作时,它将检查哪些其他线程想要使用它释放的文件并“唤醒”它们。然后第二个线程正好从那个点恢复执行。我使用自己的簿记数据结构。

最佳答案

我将告诉您如何做事而不是回答问题。 (查找“X Y 问题”。)

您试图阻止两个线程同时访问同一个文件。换句话说,访问是互斥的。 “互斥锁”旨在执行此操作。通常,如果您搜索您正在尝试执行的操作(防止两个线程同时访问同一资源)而不是搜索您想要执行的操作(让一个线程等待另一个线程),则更容易找到帮助。

编辑:听起来您实际上想要很多读者,但只需要一位作者。这可能是第二个最常见的同步问题(仅次于“生产者-消费者”问题)。使用 pthread_rwlock:读取器调用 pthread_rdlock,写入器调用 pthread_wrlock

如果您正在做这么复杂的事情,您真的应该开始阅读相关文献。如果你认为你可以做多线程编程一些认真的阅读,你比我聪明得多,你不需要我的帮助。我推荐免费下载“The Little Book of Semaphores”( source )。它与 pthreads 无关,但它是好东西。您询问的读者-作者问题可在“经典同步问题”一章的 §4.2 下找到(见鬼,这个问题甚至在宣传中提到过)。

多线程编程是HARD,使用大写字母和粗体。

关于c - 从多个线程独占访问资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6367308/

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