2011/05/20

Recent entries from same category

  1. Golang で HTTP コンテンツの charset 判定をするには
  2. Golang の archive/zip でタイムゾーンの問題とファイル名の問題が解決した。
  3. Golang で優先度を変えてプロセスを起動する。
  4. net/http でレスポンスの内容を確認したいなら io.TeeReader を使おう
  5. Golang で物理ファイルの操作に path/filepath でなく path を使うと爆発します。

4chan BBS - Genius sorting algorithm: Sleep sort
http://dis.4chan.org/read/prog/1295544154
常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream
http://d.hatena.ne.jp/gfx/20110519/1305810786
Sleep sort with AnyEvent - TokuLog 改メ tokuhirom’s blog
http://d.hatena.ne.jp/tokuhirom/20110519/1305814594
こういうのはGoが得意分野だよね。
package main

import (
    "os"
    "strconv"
    "syscall"
)

func main() {
    args := os.Args[1:]

    done := make(chan int64)
    for _, arg := range args {
        i, _ := strconv.Atoi64(arg)
        go func(i int64) {
            syscall.Sleep(i * 1e9)
            done <- i
        }(i)
    }
    for _ = range args {
        println(<-done)
    }
}

blog comments powered by Disqus