タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとthreadとPOSIXに関するItisangoのブックマーク (5)

  • 複数スレッドからファイルアクセスする場合の、適切なロック方法

    C言語で複数スレッドからファイルアクセスする場合、ロックする関数についてご教示ください。 下記のようなプログラムを作成しています。 ・スレッド(1)は、ファイルに対してライトします。 ・スレッド(2)は、スレッド(1)によってライトされたファイルに対してリードします。 ・必ずしもスレッド(1)(2)は同じファイルにアクセスするわけではなく、スレッドごとにfopen()します。 ・タイミングによってスレッド(1)(2)は同じファイルにアクセスします。 ・(不測の自体でロックをとったままスレッドが落ちてしまった場合、他方のスレッド側ロックを強制解除して処理は継続させたいです(別途エラーメッセージはログに出力します)。 flock(fd,LOCK_EX)をつかってロックを取る方針で検討していたのですが、 「flock()はファイル記述子ごとにロックするので、 fopen()を別々に行っていては正

    複数スレッドからファイルアクセスする場合の、適切なロック方法
  • セマフォ (マルチスレッドのプログラミング)

    セマフォ セマフォは、E.W. ダイクストラ (Dijkstra) が 1960 年代の終わりごろに考案したプログラミング手法です。ダイクストラのセマフォモデルは、鉄道線路の運行をモデル化したものです。一度に一の列車しか走れない単線の鉄道線路を思い浮かべてください。 この鉄道線路を保護するのがセマフォです。列車は単線区間に入るとき、セマフォの状態が進行許可状態になるのを待たなければなりません。列車が単線区間に入るとセマフォの状態は、他の列車が単線区間に入るのを禁止する状態に変化します。単線区間から出る列車は、セマフォの状態を進行許可状態に戻して他の列車が単線区間に入ることができるようにしなければなりません。 コンピュータ内のセマフォは、単一の整数で表現されます。スレッドは進行が許可されるのを待ち、その後進行したことを知らせるためにセマフォに対して P 操作を実行します。 この操作をもう少

    Itisango
    Itisango 2020/05/08
    “Dijkstraが 1960 年代の終わりごろに考案したプログラミング手法です。ダイクストラのセマフォモデルは、鉄道線路の運行をモデル化したものです。一度に一本の列車しか走れない単線の鉄道線路を思い浮かべてください”
  • Cストリーム入出力関数とスレッド安全性 - yohhoyの日記

    C標準ライブラリの<stdio.h>ヘッダで提供されるストリーム入出力関数において、複数スレッドから同時に対象ストリーム入出力操作を行ったときの振る舞い(スレッド安全性)に関するメモ。 まとめ: C99以前:POSIX準拠システムならばスレッド安全である。(それ以外は処理系の仕様を参照) C11以降:C言語仕様によりスレッド安全性が保証される。この振る舞いに関してはPOSIX相当。 POSIX POSIXシステムが定める全関数は基的にスレッド安全(Thread-Safe)であると定義され、C標準ライブラリの関数fgetcやprintfなどを用いて、異なるスレッドから同時にストリーム入出力操作を行ってもよい。*1 POSIX規格(IEEE Std 1003.1-2008)より "Thread-Safe" の定義、およびflockfile, funlockfile関数仕様から一部引用(下線部

    Cストリーム入出力関数とスレッド安全性 - yohhoyの日記
  • pthread mutexで排他ロックする方法 - C言語入門

    マルチスレッドプログラミングでスレッド間で共有データにアクセスするときに、mutex(MUTual EXclusion, ミューテックス)を用いて、排他ロックを行うことがあります。プログラムに競合状態を引き起こすようなコードがあると、計算の整合性、データの整合性が失われます。競合状態を避ける目的で、クリティカルリージョンをロックで保護します。pthread では、pthread_mutex_tとpthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock を用いて、ロックをコントロールします。 読み方 mutex みゅーてっくす 競合状態 きょうごうじょうたい MUTual EXclusion みゅーちゃる えくすくるーじょん クリティカルセクション くりてぃかるせくしょん critial section くりてぃかるせくし

  • pthreadについて(概要・生成)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    pthreadについて(概要・生成)
  • 1