並列処理2019/06/30SHAREツイートシェアはてブLINEPocketgoの並列処理についてgoでの並列処理について勉強した。参考書を読んでいると「アトミック性」という初めて聞いた言葉が出てきた。それとコンテキストについて今までふんわりと使っていたので言葉の意味をおさらい。他にも知らない言葉がいっぱいあった。オライリーの本を参考にするので、それを読みながらノートをとっていく。アトミック性アトミックとは、原子という意味の「アトム」に由来するソフトウェア用語です。ある操作がアトミックであるといえば、その操作は分かつことができないという意味になります。操作の不可分性をうまく言い表している用語だと思います。組み込みプログラマーは誰もが、この用語を使うかどうかはともかく、心のどこかでアトミック性というものを意識しておく必要があります。割り込みという名の悪魔が、あなたを混乱に陥れるチャンスを常に狙っているからです。ITの分野では、利用者の意図や状況、環境などの総体を表したり、同じ処理や記述でも状況に応じて動作などが異なる場合に、その選択基準となる判断材料や条件などを指す場合が多い。http://e-words.jp/w/%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88.html要はi++みたいな処理はコンテキストによってアトミックだったりアトミックではなくなったりする。iを他のゴルーチンに公開しないみたいな。アトミックがわかれば、それを複数の平行のコンテキストで安全に扱えることができるということ。「ここの処理は関数化するか!」見たいのをしっかり考えようねってことかなと。}}上記のようなコードだとデータをインクリメントしているゴルーチンif文の条件fmt.Printfの箇所は排他的なアクセスが必要になるため、クリティカルセクションという。ここからは意識するべきこととそのおさらい。専門学校の時国家試験で出て以来意識したことはなかった。デッドロック並列な処理がお互いを待って進まないこと。ライブロック平行プロセス同士がお互いを邪魔して無限ループしているような状態。平行プロセスが処理をするためのリソースを取得できない状態。上記の項目を意識して勉強していく必要があり、goのプリミティブをつけって安全に記述していくようにする必要がある。engineerwebエンジニア。フリーランスで活動しています。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。