問題タブ [pthread-barriers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - マルチスレッドを使用して 1 つのファイルを同時にコピーし、同じファイルを MD5 チェックサムまで出力する
私が直面している問題は、ファイルをコピーしようとすると、ファイルの一部のみがコピーされ、他の部分は読み取り不能な文字の束であるということです。これは、バリア同期を使用する必要がある学術的な課題のためのものであるため、open、write、および read を使用する必要があります。
スレッド関数を何度も作り直しましたが、それが問題である場合は再度変更できます。メインの for ループをまったく変更していないので、それが問題かもしれませんが、それが何であるかはわかりません。最後に、バリアをどうするかはよくわかりません。私の教授は非常にあいまいで、私は彼に質問することはできません.おそらく障壁は私が本当に欠けている部分です.
multithreading - 操作上の問題 - 上記のコードのスレッド、プロセスなど:
質問: ex1.c (6.1) で、次のどのプロパティが達成されたか:
(1) 相互排除するが進歩しない
(2) 相互排除ではなく進歩
(3) 相互排除も進歩もしない
(4) 相互排除と進歩の両方
説明してください?
1.2
どの引数 (6.1) が正しく、どれが正しくないか:
(1) 常に終了します。スレッド = 2 またはスレッド <= 0 の場合
(2) 常にハングします。スレッド = 1 またはスレッド > 2
どんな助けでも大歓迎です
c - プログラムが pthread_barrier_init.c ファイルを見つけられないのはなぜですか?
学校では、共有バッファーを回避する 2 つの読み取りスレッドと 1 つの書き込みスレッドを実行するプロジェクトに取り組んでいます。この共有バッファは、私たちが自分でプログラムしたある種のポインタ ベースのリストです。スレッドセーフにするために、pthread_rw_locks といくつかの pthread_barriers を使用しました。コードを実行しようとすると、ほぼ瞬時にクラッシュし、セグメンテーション エラーが発生しました。gdb デバッガーを使用すると、次のメッセージが表示されました。
プログラムが信号 SIGSEGV、セグメンテーション違反を受信しました。
__pthread_barrier_init (barrier=0x0, attr=0x0, count=2) at pthread_barrier_init.c:47
47 pthread_barrier_init.c: そのようなファイルまたはディレクトリはありません。
コンパイル時に -lpthread フラグを含め、それが使用されるすべてのファイルに pthread.h を含めるようにしました。私のプログラムがこのcファイルを見つけられない理由は何ですか?
編集
これは私が使用するコードのスニペットです。(これはほとんどすべてのコードですが、この部分で問題が発生します)
これはメインループの私のコードです
これはバッファの私のコードです