mutex

    1

    1答えて

    私は4つのスレッドでA、B、C、Dと呼ばれる4つの処理をしています。私はA、B、C、DをA、B、C、Dの順に処理するためにmutexを使用します。これは私のコードですが、私のようには機能しません。彼らはどのように働くのですか? #include <stdio.h> #include <pthread.h> void processA(); void processB(); void pr

    2

    1答えて

    リンクhttps://golang.org/pkg/sync/は、 "このパッケージに定義されている型を含む値はコピーしないでください。 なぜそうですか?アドバイスを無視するとどうなりますか?

    0

    1答えて

    バッファにデータをプッシュできるバッファを作成しようとしています。バッファが完全かどうかチェックし、必要に応じてバッファを交換します。別のスレッドは、ファイル出力用のバッファを取得できます。 私はバッファを正常に実装しましたが、不完全なバッファを強制的にスワップして不完全バッファからデータを返すForceSwapBufferメソッドを追加したかったのです。これを行うために、読み書きバッファが同じで

    0

    1答えて

    私はcharドライバとそれを読み書きするユーザー空間プログラムを持っています。ユーザー空間プログラムからの特定のコマンドは、charドライバにロックを取得させ、別のコマンドはロックを解放させます。これは、ドライバの書き込み機能で発生します。ドライバがミューテックスを保持している間に私が誤ってユーザスペースプログラムを終了した場合に備えて、どうやってミューテックスを解放するためにドライバにタイムアウ

    4

    1答えて

    std::atomicを見てみると、それはデフォルトの専門分野は、私が読んだ: これらの専門分野は、標準的なレイアウトを持って、自明なデフォルトコンストラクタ、および些細なデストラクタ。 Iはまたis_lock_freeため読み出す: std::atomic_flag以外のすべての原子タイプではなくロックフリー 原子CPU命令を使用するよりも、 ミューテックスまたは他のロック操作を使用して実施する

    3

    1答えて

    大きなObjタイプのグローバルオブジェクトプールを実装しようとしています。ここでPOOLのためのコードは次のとおりです。ここで static mut POOL: Option<Mutex<Vec<Obj>>> = None; static INIT: Once = ONCE_INIT; pub struct Obj; は、私がアクセスしPOOLをロックしています方法です: fn get_

    0

    1答えて

    私は、メンバー変数pthread_mutex_t mを持つ基本クラスB()を持っています。派生クラスからmutexをロックしようとすると、私は永遠にブロックします。私はGDBを開いて、mのようなものを印刷しました。そして、それは不器用な(非インスタンス化された)ようですが、わかりません。 基本クラス class B { protected: //or public! pth

    2

    1答えて

    私はmutexを研究しています。 この例は、同期なしで動作するように見えます。 #include <cstdint> #include <thread> #include <iostream> constexpr size_t COUNT = 10000000; int g_x = 0; void p1(){ for(size_t i = 0; i < COUNT; +

    0

    1答えて

    カーネルクラッシュダンプをデバッグしています。 1つのプロセスが新しい領域をマップするのに問題があるようです。問題は、メモリマップセマフォを保持できないことです。 私はプロセスのmm_structを調べ、その内容を印刷しました。私はstruct rw_semaphore mmap_semが下記の通りであることを知りました。今、彼はcountの価値が疑わしいと思われますか?あたかも0をチェックした後

    0

    2答えて

    以下のコードは、私が扱っている実際のコードを極端に単純化したものです。これは誰でも私が直面している問題を再現できるようにするためのものです。 #include <mutex> #include <thread> using std::mutex; using std::thread; void Do() { static mutex myMutex; static