簡體   English   中英

替換 std::sync::Semaphore 因為它已被棄用?

[英]Replacement for std::sync::Semaphore since it is deprecated?

文檔說它已被棄用。 什么是系統信號量? 現在這個結構的最佳替代品是什么?

自 1.7.0 起已棄用:很容易與系統信號量混淆,並且不足以發揮其作用

系統信號指的是什么信號量的操作系統提供。 在 POSIX(Linux、MacOS)上,這些是您從#include <semaphore.h>手冊頁)中獲得的方法。 std::sync::Semaphore僅在 rust 中實現,不涉及操作系統的同步原語。

如果您需要二進制信號量( 即互斥鎖),您可以使用std::sync::Mutex std::sync::RwLock類似,但旨在解決讀者-作者問題。 對於類似於一般信號量的東西,您可以使用AtomicIsize和繁忙循環,但繁忙循環會影響性能。

std::sync::Semaphore從未穩定過。 我第一次設法錯過了這個事實,因為沒有顯示“不穩定”警告框,可能是因為“已棄用”框取代了它。 信號量的源代碼包含一個不穩定的屬性

#![unstable(feature = "semaphore",
            reason = "the interaction between semaphores and the acquisition/release \
                      of resources is currently unclear",
            issue = "27798")]

標題中的問題編號指定了有關此功能的討論

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM