この記事はGo7 Advent Calendar 2019五日目の記事です。 やりたいこと下記のように直列で動作し実行時間の長いGoのプログラムを、並行処理に変えて処理を効率化させます。 package main import ( "fmt" "time" ) func main() { for i := 0; i < 100; i++ { time.Sleep(2 * time.Second) // 長い処理 fmt.Println("End:", i) } }
クリスマスイブだというのにQiita書いてます。こんにちは。 記事を書き終わったら子供の枕元にプレゼントを仕込むミッションですね。 ここしばらくGoを書いていないのでちょっとリハビリを兼ねて少し変わった感じの構成でコードを書いてみました。 普段AppengineのWebのプログラミングばかりだったので手ごわかった・・・完成してないけど。 HEMSとは HEMSとは「Home Energy Management System(ホーム エネルギー マネジメント システム)」の略です。 参考 : http://www2.panasonic.biz/es/densetsu/aiseg/hems/about/index.html つかったもの Go Mac (本当はラズパイで動かしたいがまだそこまでいってない) GE 富士電機製スマートメータ(家についてるやつ。ついてなかったら東京電力に連絡すればつ
Hori Blogフリーランスでバックエンドエンジニアとして活動している Ryota Hori のブログです。 最近はテック系記事より雑記ブログ気味。 この記事は Go Advent Calendar 2017 の 1 日目の記事です。 Go の長所に goroutine による非同期処理がありますが、どうしても channel の取り回しで黒魔術化しがちです。少しでも闇を減らしていきたいので、 channel らへんの取り回しについてパターンをまとめました。チートシート的に使えれば嬉しいです。 Go の channel の基礎 入門資料として使いたいので、本題に入る前にざっくり基礎を。 定義のパターン channel には capacity という概念があります。 capacity は channel 内でバッファリングしておける容量のことで、 capacity に空きが無い場合は送信側
Go (その3) Advent Calendar 2016 11日目の記事です。 Go言語の生みの親、Rob Pikeが2015年のGopherfestのセッションで 言っていた、Go Proverbsを自分の勉強がてら和訳してちょっと解説してみる。 後半に行くに連れて集中力が切れたり、いろいろ調査不足のところや、認識違いの部分もあると思うので、 そういう部分のところがあったら是非指摘してください。自分でも気づいたら修正していきます。 ちなみにタイトルの「Go Proverbs」は、動画の冒頭で囲碁の話をしているとおり「碁の格言」の直訳で、 「Goの格言」にかかっていておしゃれ。 メモリを共有して通信したり、通信してメモリを共有してはならない 原文は"Don't communicate by sharing memory, share memory by communicating." こ
golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればどう実装すればいいか分からないなんて事もあったと思います。しかし golang の goroutine/channel は、やっている内容の割にとても容易にスレッド間通信やキューイング、処理の受け待ち等を実装できる様になっています。尚、channel をどの様に適用したら良いかについては以下を参照下さい。 Big Sky :: Golang の channel の使い所 golang の特徴と言えば goroutine と channel ですが、その使いどころに悩む人もおられる様です。 goroutine は非同期に実行される処理、channel はその grout... http://mat
6. GoでWebアプリを開発する メリット ● インタプリタと比較して 高速・軽量 ○ Railsより50倍の速度と10倍の省メモリという話も[1] ● 並列処理 が簡単 ○ goroutine(スレッド)と channel(メッセージパッシング) ○ go func() のように go を使うだけ ● シングルバイナリ でデプロイ ○ コンパイルしたバイナリをアップロードするだけ ○ ライブラリのインストールなどが不要 ○ コンテナ や マイクロサービス との親和性が高そう 16/02/27 6 [1] https://plus.google.com/+MattAimonetti/posts/PeZk8FY3PWY 7. GoでWebアプリを開発する メリット ● コーディング規約 を統一 ○ gofmt(goimports)で強制的に直される ○ 可読性が上が
« C++ 製 micro web framework「crow」を使って lingr の bot 書いてみた。 | Main | Windows でも色付きでログが出せる golang のライブラリ「go-colorable」書いた。 » あと最近の発見と絶望は、C.selectが呼び出せないこと。select中のdefaultでnonblocking相当にできるけど、可変数なfdをselectしたい相当をどう書けばいいんだろうか。 #golang — HiroakiKawai (@kwi) July 28, 2014 reflect.Select を使います。 package main import ( "fmt" "math/rand" "reflect" "sync" "time" ) func multpleSelect(chans []chan bool) (int, bool
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く