概要
スレッドセーフといった単語を聞いたことはありますか??
聞いたことはあっても、それがどういう状態かはっきりわかっているとは言えないなぁと思っているそこの あなた に向けた記事です。
今回の記事を読めば、スレッドがどういうもので、スレッドセーフとは何かがわかるようになるはずです。
今回の目標としてはスレッドセーフなDictionary、つまり標準ライブラリのConcurrentDictionaryを作ることです。
今回、採用する言語としてc#を選びました。
c#は言語レベルでマルチスレッドプログラミングをサポートしている言語で、async
やawait
、Task
などはc#erなら聞いたことや使ったことがあると思います。
これらの動作の根底にはマルチスレッドデザインパターンが使用されています。
コラムとしてこれらの動作について、スレッドレベルでほんわかと解説したいと思います。
今回の記事はJavaで学ぶマルチスレッドデザインパターン を読んでc#バージョンをやろうと触発された結果なので、興味があればこの本もぜひ読んでみてください。
この記事でもちいている用語は、基本的に上の本からの引用です。
記事一覧
- スレッドとは何かコンピュータの動作レベルから納得する
- スレッドセーフとは何か未完成
- Dictionaryをスレッドセーフにする未完成
- [Dinctionaryをより効率的にスレッドセーフを実現する]未完成(https://qiita.com/hidekikangeki/items/708d01e986234b00e74d)
- async,await,taskの動きを理解する未完成