タグ

並列処理に関するkoemuのブックマーク (11)

  • Goでの並行処理を徹底解剖!

    並行処理をうまく使うのは難易度が高めです。 それゆえに、go文とチャネルについて基的な文法書で知った後「並行処理ちゃんとできる!」の段階まで自力でたどり着くのは大変でしょう。 このは、 *「並行処理ってやって何が嬉しいの?」 *「ゴールーチンとかチャネルとかって一体何者?」 *「ゴールーチンやチャネルを使ったうまいコードの書き方が知りたい!」 *「Goランタイムで並行処理をどううまく処理しているか知りたい!」 といった要望にお答えする、「Goでの並行処理」に関連した事柄について網羅的・徹底的に書きまくったものです。

    Goでの並行処理を徹底解剖!
  • Big Sky :: Go 言語の非同期パターン

    Gogoroutine という非同期の仕組みを提供していますが、使い方次第では色々なパターンが実装できる為、初めて goroutine を見た人はどの様な物が正解なのか分からない事があります。以前、このブログでも紹介した事がありますが Go の非同期の仕組みは一見単純な様に見えて実はとても奥深いのです。 Big Sky :: golang の channel を使ったテクニックあれこれ golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればど... https://mattn.kaoriya.net/software/lang/go/20160706165757.htm 2012 年に Rob Pike 氏が Google I/O で「Go

    Big Sky :: Go 言語の非同期パターン
  • Resolving Web Application Resource Bottlenecks with Concurrency

    About us Founded in 2008, Phusion creates top of the line server software to power businesses like Apple and Intercom. This article is a general introduction into the bottlenecks of web applications and how application servers can deal with them to improve request throughput and response times. We will start off by introducing the role of an application server. In the following sections we will il

    Resolving Web Application Resource Bottlenecks with Concurrency
  • php で手軽に並列処理をするライブラリ Snidel を作りました - 暁

    シルバーウィーク中に php のライブラリを作りました。 ackintosh/snidel Snidel (スナイデル) について 他の言語のマルチスレッド等の並行・並列処理のための機構に近い書き心地で php で手軽に並列処理をする。というのがコンセプトです。 子プロセス数の制御に メッセージキュー プロセス間のデータのやりとりに 共有メモリ を使っています。 命名に特にこだわりは無いのですが、響きがシュッとしてていいかなと思ってます。 ただ、この記事を書きながらGoogle翻訳にかけてみたらエストニア語で「薬物使用者を注入」って出てきたので少し怖くなってきました…。 proc_open() や exec() でコマンドをバックグラウンドで実行するのではなく、 Callable を別プロセスで実行して、結果を親プロセスが受け取るかたちにしたかったので PCNTL関数 を使うようにしました

    php で手軽に並列処理をするライブラリ Snidel を作りました - 暁
  • Advanced Go Concurrency Patterns

    Advanced Go Concurrency Patterns Sameer Ajmani Google Video This talk was presented at Google I/O in May 2013. Watch the talk on YouTube 2 Get ready 3 Go supports concurrency In the language and runtime, not a library. This changes how you structure your programs. 4 Goroutines and Channels Goroutines are independently executing functions in the same address space. go f() go g(1, 2) Channels are ty

  • Go言語の並行性を映像化する | POSTD

    Goというプログラミング言語の強みの1つは、 Tony Hoare考案のCSP に基づくビルトインの並行性(Concurrency)です。Goは並行性を念頭にデザインされているため、複雑に並行したパイプラインの構築を可能にしています。でも、それぞれの並行性パターンがどのように見えるものなのか気になったことはありませんか。 もちろん、気になったことはあると思います。恐らくそれぞれ形は違っても、誰もが頭に描いているのではないでしょうか。もし、「1から100までの数字」について聞かれたら、無意識に頭の中で数字のイメージを思い浮かべると思います。例えば、私の場合、自分の前から1から20までがまっすぐに並び、21以降は90度右に曲がり1000以降まで続くイメージが浮かびます。これは多分私が幼稚園の時に教室の壁に沿って数字が貼られていて、ちょうど角に数字の20があったからなのだと思います。別の例えをす

    Go言語の並行性を映像化する | POSTD
    koemu
    koemu 2016/03/08
    映像化すると理解が深まるものもある
  • Mastering concurrency in Go - Outlearn

    * outlearn.com is a domain name potentially for sale - NOT a website Your domain name is your identity on the Internet Establish instant trust and credibility with customers Premium domain names appreciate in value over time Acquire or upgrade to the best possible domain for your business usp5 *All sales will be closed using a trusted 3rd party escrow service

  • Go Concurrency Patterns: Context[翻訳] - 小野マトペの納豆ペペロンチーノ日記

    7月29日付けのgolang.orgブログエントリーで context というパッケージが紹介されました。 Go Concurrency Patterns: Context - The Go Blog 参考: Go言語のcontextパッケージについてのやりとり - ワザノバ | wazanova 今現在、業務でGo言語を使ったWebサービスを書いているのですが、contextはリクエストのキャンセルとタイムアウトとリクエストスコープの変数を扱う、Google社内で利用が標準化されているパッケージだという事なので、エントリーを翻訳しました。 以下和訳。 Introduction Goサーバーでは、入ってくる各リクエストは専用のgoroutineで処理されます。リクエストハンドラは、データベースやRPCサーバーにアクセスするためにしばしば追加のゴルーチンを開始します。リクエスト上のゴルーチン

    Go Concurrency Patterns: Context[翻訳] - 小野マトペの納豆ペペロンチーノ日記
  • I/O With Go: io.Pipe()

    I find that Go's I/O framework is one of its major strengths: The io.Reader and io.Writer abstractions make it easy to create composable programs It's a great example of how to use interfaces in your own programs One of my recent discoveries is io.Pipe(). Let's for example encode some JSON and send it as an HTTP POST body. You could use a bytes.Buffer to store the result of the encoding and then p

    koemu
    koemu 2015/11/30
    こうすると並列にできるのか知らんかった
  • Golangで作ったhttpdの接続数を制限してみよう

    こんにちは。斎藤です。 ここ1〜2年、私は仕事Golangを書くことが増えています。きっかけは、ITインフラをお預かりする中で、お客様のサーバにツールを置く場合でも1つのバイナリさえ置けば良いという手軽さからだったのですが、最近はScalaと並び手軽に並列処理が書けるプログラミング言語として重宝しています。 さて、今回はGolangで作ったhttpdの接続数をLimitListenerを利用して接続数の制限をしてみようというお話です。以下に紹介するお話は、Githubのリポジトリ "github.com/koemu/go-http-max-connections-demo" にデモプログラムを保存しています。Golangのビルド環境がある方は、実際にビルドしながらお試しいただければと思います。 ※Golang 1.5.1でビルドする前提で説明しています モティベーション 仕事でとあるAP

    Golangで作ったhttpdの接続数を制限してみよう
    koemu
    koemu 2015/10/20
    会社のブログを書きました / id:okzk プロダクトに仕込む時はタイムアウトを設定してください(TLSの所にも書いています)
  • 並列データベースシステムの概念と原理

    2014/01/30 筑波大学情報システム特別講義Dの講義資料です。 join関係はNAIST時代の宮崎先生のデータ工学Ⅱの内容を参考にしてます。 animation有効なビデオはこちら https://vimeo.com/85598907Read less

    並列データベースシステムの概念と原理
  • 1