はてブログ

はてなブックマーク新着エントリーの過去ログサイトです。



タグ goroutine

新着順 人気順 5 users 10 users 50 users 100 users 500 users 1000 users
 
(1 - 25 / 28件)

Goroutineの使い方

2023/12/06 このエントリーをはてなブックマークに追加 10 users Instapaper Pocket Tweet Facebook Share Evernote Clip 使い方

この記事はGo 言語 Advent Calendar 2023のシリーズ2の4日目の記事です(穴があったので入りました!)。 goroutineの特徴 コルーチンをベースにコルーチンの以下の点を改良 言語組み込みワード「go」にて起動できる M:Nスレッドシステム採用によりマルチコア分散処理が可能 ブロッキングを検出したらネイティブスレッ... 続きを読む

言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)

2023/01/09 このエントリーをはてなブックマークに追加 85 users Instapaper Pocket Tweet Facebook Share Evernote Clip mapping Twitter 言語 Java スレッド

Twitterで "green thread" という単語をたまたま見かけたので、知っていることをつぶやいたよ。 Green thread 言語のスレッドとOSのスレッドの関係 N:1 mapping 言語のスレッドの全てがひとつのOSのスレッドの上で実行されるもの。その代表が上記のJavaのgreen thread。 OSのシステムコールを呼ぶときには必ずnonblockin... 続きを読む

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

2022/01/27 このエントリーをはてなブックマークに追加 10 users Instapaper Pocket Tweet Facebook Share Evernote Clip ラクス Go言語 エンジニアブログ 入門記事 皆様

はじめに おはようございます、こんにちは、こんばんは、rks_hrkwと申します。 もう1月も終わりですね。皆様いかがお過ごしでしょうか。 この記事はGo言語といえばの機能の一つである、ゴールーチン(goroutine)の入門記事となっております。 この記事は Go触ってみたけどまだゴールーチンは勉強してないよ Go触ったこと... 続きを読む

sync.Condとはなにか | dtyler.io

2021/04/19 このエントリーをはてなブックマークに追加 12 users Instapaper Pocket Tweet Facebook Share Evernote Clip マルチスレッド 筆者 プログラミング ユースケース 現実世界

2021/04/12 はじめに Goの sync.Cond は、マルチスレッド (正確にはgoroutine) プログラミングにおける同期プリミティブだ。 sync.Condはミューテックスと比べユースケースが限定的で、かつ使い方もやや複雑であると感じられる。そのためか、あまり現実世界での使用例を見ないように筆者には思われる。 本記事ではsync.C... 続きを読む

Rustの非同期ランタイムが多すぎる?io_uringなやつを使おう! - nttlabs - Medium

2021/02/11 このエントリーをはてなブックマークに追加 21 users Instapaper Pocket Tweet Facebook Share Evernote Clip rust nttlabs medium io_uring ヤツ

AWS、Google、Microsoftらが、Rust Foundationを設立し、今やRustでなければクラウドネイティブじゃない、と言っても過言ではありませんよね。クラウドネイティブと言えば、スケーラブルなシステム、Goはgoroutineを標準機能として提供しますが、Rustのasync/awaitは、標準機能に含まれていない外部ライブラリを必要とし... 続きを読む

Go の sql.DB がコネクションプールを管理する仕組み - Please Sleep

2020/10/18 このエントリーをはてなブックマークに追加 136 users Instapaper Pocket Tweet Facebook Share Evernote Clip コネクションプール SQL スレッドセーフ DATABASE

Go の database/sql パッケージ の DB 構造体 は、データベースへのコネクションプールを管理し、かつスレッドセーフ (goroutine セーフと言ったほうが良いのだろうか…?) にそれらの接続を使用できることを保証している。 ドキュメント にも次のように書かれている。 DB is a database handle representing a pool of ze... 続きを読む

プログラミング言語Go完全入門 - Google スライド

2020/08/31 このエントリーをはてなブックマークに追加 13 users Instapaper Pocket Tweet Facebook Share Evernote Clip スライド プログラミング言語Go完全入門 Google 返却

プログラミング言語Go完全入門 @tenntenn [TODO] ・fmt.Printfのverbsをまとめる ・RoundTriper的なパターンについても書く ・xerrorsに関する記述を増やす ・並行処理ハンズオンの話を入れる(https://github.com/tenntenn/gohandson/tree/master/goroutine) ・リダイレクトの方法 ・Formの入力 ・画像の返却 ・静的フ... 続きを読む

golangとDockerとOOM — KaoriYa

2020/01/18 このエントリーをはてなブックマークに追加 141 users Instapaper Pocket Tweet Facebook Share Evernote Clip OOM KaoriYa Docker golang ダンプ

golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた ... 続きを読む

複数のGoroutineをWaitGroupで制御する - Hack Your Design!

2019/12/04 このエントリーをはてなブックマークに追加 8 users Instapaper Pocket Tweet Facebook Share Evernote Clip DESIGN Hack Your 複数

この記事はGo7 Advent Calendar 20195日目の記事です。 やりたいこと 下記のように直列で動作し実行時間の長いGoのプログラムを、並行処理に変えて処理を効率化させます。 package main import ( "fmt" "time" ) func main() { for i := 0; i < 100; i++ { time.Sleep(2 * time.Second) // 長い処理 fmt.Println("End:"... 続きを読む

遺伝的アルゴリズムの並列化とgoroutineによる実装 - Fire Engine

2019/06/24 このエントリーをはてなブックマークに追加 14 users Instapaper Pocket Tweet Facebook Share Evernote Clip gor アルゴリズム 実装 Fire Engine 並列化

先日、「遺伝的アルゴリズムをGoで実装してみた」という記事を書きました。 この内容で2019年7月13日(土)に開催されるGo Conference'19 in Fukuokaに登壇させていただくことになったので、開発中のeagoというパッケージをもっと作り込んで行きたいと思います。 今回は、遺伝的アルゴリズム(以下、GA)の計算処理をgor... 続きを読む

Go 1.11 のバグと DNS の障害の合わせ技でハマった件 - bearmini's blog

2018/10/29 このエントリーをはてなブックマークに追加 52 users Instapaper Pocket Tweet Facebook Share Evernote Clip DNS パク http 障害 現象

Go で書いたプログラムで、HTTP(S) による通信を行うとなぜか10秒間プログラム (goroutine) がストールして、その後正常に通信が行えるという謎な現象に悩まされ、無事解決できたのでここにメモしておきます。 といっても、解決のためにやったことといえば、Go のバージョンを 1.11.1(バグが修正されたバージョン)に上... 続きを読む

goroutineはなぜ軽量なのか - Carpe Diem

2018/10/23 このエントリーをはてなブックマークに追加 256 users Instapaper Pocket Tweet Facebook Share Evernote Clip Darwin golang Carpe Diem スレッド

概要 以前の記事で christina04.hatenablog.com golangはスレッドよりはるかに軽量なgoroutineでC10K問題を解決する、という話をしましたが、goroutineが軽量なのはなぜか?という理由を深掘りしたことがなかったのでしてみました。 環境 golang 1.11.1 Darwin 17.7.0 軽量と呼ばれる理由は2つ 大きく分けると以下の2... 続きを読む

Big Sky :: Go 言語の非同期パターン

2018/05/31 このエントリーをはてなブックマークに追加 268 users Instapaper Pocket Tweet Facebook Share Evernote Clip Big Sky 言語 golang channel 一見

Go は goroutine という非同期の仕組みを提供していますが、使い方次第では色々なパターンが実装できる為、初めて goroutine を見た人はどの様な物が正解なのか分からない事があります。以前、このブログでも紹介した事がありますが Go の非同期の仕組みは一見単純な様に見えて実はとても奥深いのです。 Big Sky :: golang の channel を使ったテクニックあれこれ go... 続きを読む

Big Sky :: goroutine でドハマリした。

2018/01/24 このエントリーをはてなブックマークに追加 78 users Instapaper Pocket Tweet Facebook Share Evernote Clip Big Sky

今日たまたま見つけた gotest というプログラムの修正を行った際にドハマリした。 GitHub - rakyll/gotest: go test with colors https://github.com/rakyll/gotest gotest は go test の出力の PASS や FAIL といった定型の文字列を見つけて緑や赤に色付けする小さなプログラム。仕組みも簡単で以下の様なコ... 続きを読む

channelとsync.Poolを使ってgoroutineの同時実行数を制御する - Qiita

2017/12/24 このエントリーをはてなブックマークに追加 17 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita バッファ 思索 channel チャネル

元ネタ チャンネルを使って、決まった数のリソースをgoroutine間で共有するパターン - 詩と創作・思索のひろば Big Sky :: 簡単に goroutine の実行個数を制限する方法 どちらも、固定長のバッファを持ったチャネルを共有リソースとすることでgoroutineの同時実行数を制御するパターンの例として紹介されています。 sync.Pool を使うともうすこし可読性があがると思った... 続きを読む

Big Sky :: 簡単に goroutine の実行個数を制限する方法

2017/12/21 このエントリーをはてなブックマークに追加 57 users Instapaper Pocket Tweet Facebook Share Evernote Clip Big Sky 方法

Go は簡単に軽量スレッドが起動できるのがウリなのだけど、その使い方が難しいと思われているきらいがある。 Goへの誤解について - GolangRdyJp よくGoで誤解されるポイントについて個人的な見解を書いておきます。 今回の記事は Goアドベントカレンダー2017 その3 の20日目の記事です。 使ってないパッケージがコンパイルエラーって面倒じゃね... http://golang.rdy.... 続きを読む

go tool traceでgoroutineの実行状況を可視化する - ( ꒪⌓꒪) ゆるよろ日記

2017/12/11 このエントリーをはてなブックマークに追加 107 users Instapaper Pocket Tweet Facebook Share Evernote Clip プロファイリングツール Runtime go tool

2017 - 12 - 11 go tool traceでgoroutineの実行状況を可視化する こんにちわ。しいたけです。今日はgoroutineの実行状況をいいかんじに可視化するツールの話です。 goのプロファイリングツールと言えば、 runtime/pprof や net/http/pprof ですよね。これらの使い方はググればすぐに出てくるのですが、 詳細なtraceを取得して可視化でき... 続きを読む

【翻訳】goroutine の仕組み - まるまるこふこふ

2017/12/07 このエントリーをはてなブックマークに追加 89 users Instapaper Pocket Tweet Facebook Share Evernote Clip 訳者 軽量スレッド 既存 翻訳 並行処理

2017 - 12 - 02 【翻訳】goroutine の仕組み 訳者による概要 Krishna Sundarram 氏の記事「How Goroutines Work」の翻訳です。 「goroutine とは軽量スレッドである」という説明に対して抱くであろう 「どのようにして並行処理を実現しているのか」「既存のスレッド処理と何が違うのか」「なぜ軽量なのか」という疑問を解消する文章です。 とても良... 続きを読む

Goroutineハンターが過労死する前に - Qiita

2017/12/03 このエントリーをはてなブックマークに追加 167 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita OOM Killer 過労 日夜戦い エンジニア達

Goroutineハンター、それは逃げ出したgoroutine達を捕まえるため、日夜戦い続けるエンジニア達のことである。Goroutineハンターは本番環境でOOM Killerが発動するたびに呼び出され、逃げ出したすべてのgoroutineを捕まえるまで家にかえることが出来ない。しかし、あなたが書いた何気ないコードによって、今日もまた新しいgorutine達が野に放たれるのであった。 Gorou... 続きを読む

Big Sky :: Re: Go言語感想文

2017/06/02 このエントリーをはてなブックマークに追加 157 users Instapaper Pocket Tweet Facebook Share Evernote Clip Big Sky CHAN tagomoris entry うち

幾らか言いたい事があったので。 Go言語感想文 - なるせにっき 序 最近、敵情視察を兼ねた仕事ととしてGoでアプリケーションを書いていた。このアプリケーションがどんなものかはそのうち id:tagomoris さんがどこかで話すと思うけれど、この コンポーネント ... http://naruse.hateblo.jp/entry/2017/06/02/203441 GoroutineとChan... 続きを読む

ASCII.jp:Go言語と並列処理(2)|Goならわかるシステムプログラミング

2017/05/10 このエントリーをはてなブックマークに追加 59 users Instapaper Pocket Tweet Facebook Share Evernote Clip コルーチン かなめ システムプログラミング 並行 スレッド

今回は、Go言語の並行・並列処理のかなめともいえるgoroutine(ゴルーチン)周りを掘り下げていきます。 goroutineは、前回の記事で軽く触れたように、 軽量スレッド と呼ばれるものです。 そこで、まずはこの軽量スレッドと通常のOSのスレッドがどう違うのかを説明します。 そのうえで、goroutineの低レベルな機能を扱うためのruntimeパッケージ、 goroutineのデータ競合を... 続きを読む

意外と知らないgoroutineのスケジューラーの挙動 #golang - Qiita

2016/12/10 このエントリーをはてなブックマークに追加 137 users Instapaper Pocket Tweet Facebook Share Evernote Clip スケジューリング スケジューラー Qiita golang

はじめに goroutineはGo言語の大きな特徴である並行処理を支える重要な機能です。 しかし、goroutineの仕組みについてしっかり理解しないままコードを書いてしまうと思わぬ挙動をしてしまうことがあるので注意が必要です。 今回はそんなgoroutineのスケジューリングの挙動についてまとめてみました。 僕自身がgoの書き始めの頃に引っかかった部分なので、初心者のgoroutineへの理解の... 続きを読む

Big Sky :: golang の channel を使ったテクニックあれこれ

2016/07/06 このエントリーをはてなブックマークに追加 326 users Instapaper Pocket Tweet Facebook Share Evernote Clip golang channel キューイング メッセージング

golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればどう実装すればいいか分からないなんて事もあったと思います。しかし golang の goroutine/channel は、やっている内容の割にとても容易にスレッド間通信やキューイング、処理の受け待ち等... 続きを読む

GopherJSの紹介 - GolangRdyJp

2015/10/16 このエントリーをはてなブックマークに追加 90 users Instapaper Pocket Tweet Facebook Share Evernote Clip GopherJS GolangRdyJp CHAN 実装 記述

Javascriptを書きたくないでござる!な人向け。 GopherJSってなに? Goの記述を100%Javascriptに変換してくれるツール。 サイト: http://www.gopherjs.org GopherJSの特徴 pure-GoなコードをJSの世界で動くように変換する。 goroutineやchanも論理的に動作するように変換。 外部バイナリ(.soなど)への依存のある実装の変換... 続きを読む

GAE/Goのハマったところ( ・᷄ὢ・᷅ ) - Qiita

2014/12/22 このエントリーをはてなブックマークに追加 46 users Instapaper Pocket Tweet Facebook Share Evernote Clip GAE Qiita リクエスト ご存知 半年

2014年は半年くらいGoogle App Engine(GAE)/Goのアプリを書く事に費やすことが出来て、とても幸せな一年でした(^^) GAE/Goはご存知の通りずっとbeta(or experimental)ですが、個人的にはGAEランタイムの中で最強だと思っています。 何よりspin-upが早い!リクエストの処理もgoroutineでシンプルに高速化出来る!GAEアプリ書くならGoを選ば... 続きを読む

 
(1 - 25 / 28件)