並行処理の基礎を学ぼう - Enablement Workshop for Gophers
はじめに
2023年5月10日に開催されたEnablement Workshop for Gophersで「並行処理の基礎を学ぼう」というタイトルで講義を行ないました。
Enablement Workshop for Gophersは、ナレッジワークが学生向けに提供する手を動かしながら基礎を学ぶ"Enablement"の機会です。
今回のテーマは2023年6月21日〜23日に行われるEnablement Internship for Gophersに合わせて『並行処理』です。
具体的には主に以下のような並行処理の基礎や最近または今後のアップデートについてお話しました。
- ゴールーチンとチャネル
- syncパッケージ
- コンテキスト
講義の様子はYouTubeで公開されています。
ゴールーチンとチャネル
Goの有名な特徴の1つとしてゴールーチンとチャネルを用いた並行処理があります。
講義では、ゴールーチンとチャネルの基礎について、丁寧に解説しました。
syncパッケージ
実際のプロダクト開発では、ゴールーチンの同期にチャネルだけを利用することは少ないでしょう。
syncパッケージを用いてゴールーチン間の同期処理を行うことも多いです。
講義では、syncパッケージで提供されている型やgolang.org/x/sync/errgroupパッケージの解説をおこないました。
コンテキスト
Goの並行処理では、ゴールーチンのキャンセル処理や値の共有を扱う、コンテキストの理解は必須といえるでしょう。
講義では、コンテキストがどのようなデータ型なのか、なぜ必要となっているのかについて、根底にあるチャネルのクローズの挙動から解説しました。
おわりに
ナレッジワークでは、エンジニアイネーブルメント事業の一環として、このような講義を行っています。
また、ワークショップだけはなく、インターンシップも行っています。
この他にもEncraftなどの勉強会も行っていますので、Connpassでグループメンバーになっていただけると、開催通知メールが送られます。開催を知りたい方は、以下のリンクよりグループメンバー登録をよろしくお願いします。
また、EncraftのYouTubeチャンネルでは、エンジニアのイネーブルメントにつながる勉強会のアーカイブや講義動画をアップロードしていきますので、チャンネル登録をお願いします。
追記
2023年5月26日に行った「手を動かしながら並行処理を学ぼう」をテーマにしたEnablement Workshop for Gophersの動画も公開しました。こちらも合わせてご覧ください。
Discussion