これでおわり。並行性、エラー、Webサーバ。 並行性 通信による共有 並行プログラミングは大きなトピックだ。スペースの関係上、Go固有の特徴的な話だけに絞る。 多くの環境において並行プログラミングが大変なのは、共有される変数へのアクセスを巧妙に正しく実装しなければならないからだ。Goでは異なるアプローチを推奨する。共有する値はチャネルで引き渡すので、実際には複数の実行スレッドが値を共有することはない。ある瞬間にある値にアクセスするgoroutineは常に1つだ。データ競合は、設計上けして生じない。この考え方を推奨するためにスローガンにしてみた。 メモリを共有することによって通信してはいけない。通信によってメモリを共有するのだ。 このアプローチではやり過ぎになる場合もある。たとえば、参照カウントなどは、整数の変数の周りを排他ロックで囲んで実装するのがベストだろう。しかし、高レベルのアプローチ