This is a cache of https://b.hatena.ne.jp/q/goroutine. It is a snapshot of the page as it appeared on 2025-12-16T06:58:21.528+0000.
goroutineの<strong>人気</strong>記事 18件 - はてなブックマーク

並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 18 件 / 18件

新着順 人気

goroutineの検索結果1 - 18 件 / 18件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

goroutineに関するエントリは18件あります。 golanggoOS などが関連タグです。 人気エントリには 『Goroutine はなぜ軽量スレッドと称されるのか』などがあります。
  • Goroutine はなぜ軽量スレッドと称されるのか

    時間軸並行処理:ある時間の 『範囲』 において、複数のタスクを扱うこと並列処理:ある時間の 『点』 において、複数のタスクを扱うこと 書籍:Linux System Programming, 2nd Edition Chap.7 でも "時間" という観点での違いが言及されています。 Concurrency is the ability of two or more threads to execute in overlapping time periods. Parallelism is the ability to execute two or more threads simultaneously. 並行処理は、複数個のスレッドを共通の期間内で実行する能力のことです。 並列処理は、複数個のスレッドを同時に実行する能力のことです。 構成と実行並行処理:複数の処理を独立に実行できる 構成

      Goroutine はなぜ軽量スレッドと称されるのか
    • 言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)

      Twitterで "green thread" という単語をたまたま見かけたので、知っていることをつぶやいたよ。 Green thread 言語のスレッドとOSのスレッドの関係 N:1 mapping 言語のスレッドの全てがひとつのOSのスレッドの上で実行されるもの。その代表が上記のJavaのgreen thread。 OSのシステムコールを呼ぶときには必ずnonblockingモードを使い、EAGAIN または EWOULDBLOCKが返ってきたときには他のスレッドの実行権に譲るようにする必要がある。うっかりシステムコールでブロックされてしまうと、全部のスレッドが巻き添えになって動けなくなる。 スレッドの生成やコンテキストの切り替えは軽い。しかし、マルチコアを生かすことができないため、シングルコアの環境でのみ使用される。 1:1 mapping OSのスレッドと言語のスレッドが1対1対応

        言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)
      • goroutineを作ってみる。Rustで - エムスリーテックブログ

        この記事はエムスリー Advent Calendar 2025 2日目 兼 マネジメントチームブログリレー9日目の記事です。 こんにちは、エンジニアリンググループ General Manager 兼 基盤チームリーダーの横本(@yokomotod)です。 今回はgoroutineについての自由研究です。 「軽量」「何万個も作れる」「並行処理が簡単に書ける」...そんなgoroutineの裏側はどうなっているんでしょうか。 なぜOSスレッドより「軽い」の? グリーンスレッドとは違うの? なぜパフォーマンスが高いと言われるの? この記事では、goroutineのようなランタイムをRustで自作することで、これらの疑問に答えることを目指しました。 ソースコードの全体は以下のリポジトリで公開しています。 github.com なぜRust? OSスレッドは重い、のおさらい グリーンスレッドを作って

          goroutineを作ってみる。Rustで - エムスリーテックブログ
        • Go の goroutine / channel は全然簡単じゃないので errgroup を使おう - 音速きなこおはぎ

          技術記事です。今日は Go の golang.org/x/sync/errgroup についてです。 TL; DR Go が並行処理を得意とするのは事実だけど、とはいえ正しく使うのは難しい(特に channel)。 errgroup なら「並行でダウンロードする」のような頻出パターンをとても簡単かつ安全に使えるので、まずはこれで美味しいところだけ頂いてしまおう。 重い処理を並行にすればあなたのプログラムはカジュアルに数倍速くなる。 多分 errgroup だけで現実の要件の85%くらいはカバーできるはず。 channel も含めてちゃんと使いこなしたいと思ったら、Go 言語による並行処理 がおすすめです。 errgroup とは ドキュメントはここを参照してください。説明を読むよりコード例で見たほうが早いと思うのでこちらをどうぞ。 package main import ( "fmt" "

            Go の goroutine / channel は全然簡単じゃないので errgroup を使おう - 音速きなこおはぎ
          • 原理原則から適切なgoroutineの数を考える

            概要 動機 goroutineを使ってパフォーマンスを改善する際に、どれくらの数で並行処理すればいいのか分かりませんでした。そこで、そもそもどのような仕組みなのか調べ、どのような性質の仕事が改善されるのか計測して、適切な数を決めるための観点を整理しました。 要約 goroutineはカーネルスレッドとM:Nの関係になっています。そしてカーネルスレッドごとにgoroutineのキューがあり、Goのスケジューラが順次実行していきます。 IO-Boundな処理は、netpollerが別のカーネルスレッドで非同期でシステムコールを実行するので他のgoroutineをブロックしないようになっています。 goroutineの使用時には以下の観点を留意する必要が計測から分かりました。 goroutineを使う場合はコンテキストスイッチのコストとトレードオフになる CPU-Boundなgoroutineは

              原理原則から適切なgoroutineの数を考える
            • Goroutineの使い方

              この記事はGo 言語 Advent Calendar 2023のシリーズ2の4日目の記事です(穴があったので入りました!)。 goroutineの特徴 コルーチンをベースにコルーチンの以下の点を改良 言語組み込みワード「go」にて起動できる M:Nスレッドシステム採用によりマルチコア分散処理が可能 ブロッキングを検出したらネイティブスレッドが独立 プリエンプティブ性を追加(Go1.14以降) 以上により、goroutineスレッドシステムはコードを書く人にとって「ネイティブスレッド」の感覚で実装を書くことができ、「コルーチン」のようにメモリやタスクスイッチ負荷が小さく、「コルーチン」のような面倒な制約(期待するレイテンシ以上にCPUビジーにしてはいけないなど)も無いといういいとこどりのスレッドシステムになりました。 ネイティブスレッドライクによる特性 ネイティブスレッドを使ったプログラミン

                Goroutineの使い方
              • Go言語の平行処理をやってみよう!【goroutine】 - RAKUS Developers Blog | ラクス エンジニアブログ

                はじめに おはようございます、こんにちは、こんばんは、rks_hrkwと申します。 もう1月も終わりですね。皆様いかがお過ごしでしょうか。 この記事はGo言語といえばの機能の一つである、ゴールーチン(goroutine)の入門記事となっております。 この記事は Go触ってみたけどまだゴールーチンは勉強してないよ Go触ったことないけどGoでの平行処理に興味があるよ という方向けです。 ※入門記事のため細かい箇所や複雑な箇所は説明を省いている可能性がありますご了承ください。 また、Goの環境構築については以下の記事をご参照ください。 tech-blog.rakus.co.jp 目次 はじめに 目次 並行処理って何? ゴールーチン ゴールーチンを書いてみよう 1行消す前の処理順 1行消した後の処理順 syncパッケージ sync.WaitGroup さいごに 参考文献 並行処理って何? 並行処

                  Go言語の平行処理をやってみよう!【goroutine】 - RAKUS Developers Blog | ラクス エンジニアブログ
                • goroutine leakを解消したい!

                  この記事は、Magic Moment Advent Calendar 2023 15日目の記事です。 こんにちは! Magic Moment で Backend Engineerをしている 大塚 です。 Magic MomentではGo言語によるマイクロサービス開発をしているのですが、ある日、あるサービスのメモリ使用量が継続的に上昇する現象を観測しました。 そこで、どういった調査をしてどのように解消までいったかをまとめました。 メモリ使用量の上昇を観測 メモリ使用量が日々上昇していることが確認できます。さっそくどこで何が原因でメモリリークしているか確認してみます。 Cloud Profilerで確認 以前よりCloud Profilerを導入していたため、まずはCloud Profilerでメモリ使用量やgoroutineの数を確認しました。 Cloud Profilerについては弊社Te

                    goroutine leakを解消したい!
                  • Goroutineよりも高級で、Async/Awaitほど世界を分断しない、Oxという選択肢 - Lambdaカクテル

                    他の言語の非同期プリミティブと比べてもOxかなり良いな〜という記事です。 先日Ox v1.0.0がリリースされた。Oxはプログラミング言語Scalaの非同期処理ライブラリで、Java 21から搭載されたVirtual Threadの機能を活用して、非同期処理のための道具を使いやすい形で提供してくれる。 github.com 今回ついに1系がリリースされたので、改めてOxを紹介し、他の言語における非同期処理プリミティブと何が違うのか、どう便利なのかを紹介していければと思う。OxはScalaのライブラリだが、Scalaを知っている人も知らない人でも読めるようなコードになっているので安心してほしい。Oxの詳細はドキュメントを参考にしてほしい。 というのも、以前Oxをフィーチャーした記事を書いたことがあったが、まだメジャーバージョンが1に到達していないのもあり、あまり深く踏み込むことはしていなかっ

                      Goroutineよりも高級で、Async/Awaitほど世界を分断しない、Oxという選択肢 - Lambdaカクテル
                    • ScalaにGoroutineがやってくる!非同期処理ライブラリOxで遊んだ - Lambdaカクテル

                      Channelスタイルの並行処理の記述を(もちろん型安全に)可能にするライブラリOxについて調べて試してみた。結論から言うと書き味がめちゃくちゃ良くて面白い。 ソースコードも置いておく。 github.com Ox Oxとは、sttpなどの開発でお馴染のSoftwareMillによって開発されているScala用の非同期ライブラリである。まだ非常に若く、活発に開発されている。 github.com Oxの特徴は、というか目的といっても差し支えないのだが、それはChannel指向の非同期処理、つまりGoroutineをScalaの上で実現している点だ。Goユーザならすぐに理解できるだろう。 百聞は一見に如かず。こんな感じのコードを書くことができる(v0.0.25時点)。 import ox.* import ox.channels.* import scala.concurrent.durat

                        ScalaにGoroutineがやってくる!非同期処理ライブラリOxで遊んだ - Lambdaカクテル
                      • Goの並行処理入門 - Goroutine基礎編 - Yappli Tech Blog

                        はじめに こんにちは。昨年の11月にYappliへ入社したしがないサーバーサイドエンジニアの佐野(@Kiyo_Karl2)です。 自分はYappliに入社するまでGo言語を利用した経験が無く、言語仕様についての理解がまだ浅いと感じる部分があるなと思っています。 そのため、今回はGo言語の最大の特徴でもあるGoroutineについてまとめてみました。 本記事は、4本の連載記事の1本目となります。 Goの並行処理入門-Goroutine基礎編 ←今ここ Goの並行処理入門-syncパッケージ編 Goの並行処理入門-channel編 Goの並行処理入門-select編 対象読者 Go言語の基礎はわかっているが、Goroutineについてはあまり理解していない メモリ、プロセス、スレッド、並行処理、並列処理といったワードについて概要とその違いを理解している 連載記事を通して取り扱わないこと 本連載

                          Goの並行処理入門 - Goroutine基礎編 - Yappli Tech Blog
                        • 【Go言語入門】goroutineとは? 実際に手を動かしながら goroutineの基礎を理解しよう!

                          【Go言語入門】goroutineとは? 実際に手を動かしながら goroutineの基礎を理解しよう! はじめまして。2022年4月に中途入社し、現在Analytics Delivery Divisionでバックエンド開発をしているエンジニアのナムです。ARISE analyticsに入社してから開発言語としてGoを使うことになりました。Goの特徴・メリットはいろいろありますが、今回はその中でもgoroutineについて簡単に話したいと思います。 goroutineとは goroutineは「Goでプログラムの同時性を簡単に具現し、既存の単純スレッド基盤に比べて効率的な動作を遂行するために作った作業単位」です。全てのGoプログラムは必ず1個以上のgoroutineを持ち、常にバックグラウンドで動作します。それぞれのgoroutineは独立的に実行されます。goroutineの特徴は非常に

                            【Go言語入門】goroutineとは? 実際に手を動かしながら goroutineの基礎を理解しよう!
                          • Goを用いたPOS連携実装の学びとTIPS チャネルとgoroutineをどうビジネスロジックに当てはめるか | ログミーBusiness

                            Goの初心者から上級者までが1年間の学びを共有する勉強会、「GeekGig #1 ~Goと私の一年~」。ここで株式会社Showcase Gigの照井氏が登壇。Goを用いたPOS連携実装で学んだことを紹介します。 アジェンダと自己紹介照井寛也氏(以下、照井):「POSレジとGo」というタイトルでさっそく発表します。今回話す内容ですが、チャネルとgoroutineを、実際のビジネスロジックでどのように使っているかの事例の共有と、そこから得た学びを共有します。 アジェンダとしてはこのようなかたちになっています。まず自己紹介をし、Showcase Gigが提供する次世代店舗プラットフォーム「O:der(オーダー)」とPOSレジの関係性、そこからチャネルとgoroutineを用いたPOS連携開発について話します。あとはそれらを開発実装したうえでの学びを共有します。 というところで、さっそく自己紹介に

                              Goを用いたPOS連携実装の学びとTIPS チャネルとgoroutineをどうビジネスロジックに当てはめるか | ログミーBusiness
                            • GitHub - gohandson/goroutine-ja: トレーシングをしながら並行処理を学ぶハンズオンです

                              You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                GitHub - gohandson/goroutine-ja: トレーシングをしながら並行処理を学ぶハンズオンです
                              • GitHub - felixge/fgtrace: fgtrace is an experimental profiler/tracer that is capturing wallclock timelines for each goroutine. It's very similar to the Chrome profiler.

                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                  GitHub - felixge/fgtrace: fgtrace is an experimental profiler/tracer that is capturing wallclock timelines for each goroutine. It's very similar to the Chrome profiler.
                                • goroutineの仕組みについて

                                  Go Conference 2021 Autumnで発表した資料です

                                    goroutineの仕組みについて
                                  • MackerelでGoroutineのブロックを検知したい - Qiita

                                    Mackerel Advent Calendar 2020 22日目のエントリです。 先日、とあるGo製のアプリケーションで、Goroutineの処理がブロックされて停止していることで、アプリケーション全体の動作が停止するということがありました。 このような問題を検知するための監視をMackerelで行う方法を考えてみたので、このエントリで紹介します。 Mackerelでは、mackerel-agentのプラグイン機構やカスタムメトリックなどの機能によって、監視対象のシステム/アプリケーションの特性にあわせた様々な監視を実装することができます。これらの機能を使って監視実装をしてみます。 アプリケーションの動作が停止したときの状態 まずはじめに、問題のアプリケーションの動作が停止していたときに、どのような事象が発生していたかを説明します。 以下は、アプリケーションに問題が発生していたタイミン

                                      MackerelでGoroutineのブロックを検知したい - Qiita
                                    • goroutineリークを排除して安全に並行処理を行う方法 | ビジネスとIT活用に役立つ情報(株式会社アーティス)

                                      goroutineはgoキーワードを関数の前に書くことで簡単に起動することができます。 しかしながら、goroutineはランタイムによってガベージコレクションされないため、正常に終了させていない場合はリークしていきます。 野放しになったgoroutineたちによってプロセスごと停止にならないよう、正常に終了させましょう。 goroutineリークしている例 それでは、意図的にgoroutineリークを発生させてみましょう。 起動しているgoroutineの数をカウントするため、runtime.NumGoroutine()を使用して現在のgoroutine数を標準出力に表示させています。 go playground package main import ( "fmt" "runtime" "time" ) func main() { fmt.Printf("before leak:\t%

                                        goroutineリークを排除して安全に並行処理を行う方法 | ビジネスとIT活用に役立つ情報(株式会社アーティス)
                                      1

                                      新着記事