タグ

Queueに関するxefのブックマーク (4)

  • unagi-chan

    unagi-chan: Fast concurrent queues with a Chan-like API, and more This library provides implementations of concurrent FIFO queues (for both general boxed and primitive unboxed values) that are fast, perform well under contention, and offer a Chan-like interface. The library may be of limited usefulness outside of x86 architectures where the fetch-and-add instruction is not available. We export sev

    unagi-chan
  • Stackを使ってQueueを作る - くまメモ

    有名な話かと思ったら意外と知られていなかったのでメモ。 FILOを使ってFIFOを作るとも言います。StackでQueue作れてもQueueでStackを作る方法が思いつかないので誰か教えて下さい。もしくはこういう学問があったら紹介して頂けると嬉しいです。 簡単な説明としては、2つのStackを用意して、enqueueするときには1つ目にpush()し、dequeueするときには2つ目からpop()するだけ。 ただし2つ目のStackが空の場合は1つ目のスタックが空になるまで2つ目のスタックに移し替える。 template<typename T> class MyQueue { std::stack<T> in, out; MyQueue(){} void enqueue(const T& v) { in.push(v); } T dequeue() { if (out.empty())

    Stackを使ってQueueを作る - くまメモ
  • SimPy:The Bank - Several Counters but a Single Queue : 分析技術とビジネスインテリジェンス

    12月25 SimPy:The Bank - Several Counters but a Single Queue カテゴリ:分析技術 今回はSimpyのチュートリアル事例のThe Bankについてまとめる。 ■ライブラリ SimPyシミュレーション関連一式と指数分布に従う乱数生成のためexpovariateを読み込む。 from SimPy.Simulation import * from random import expvariate, seed ■モデル要素 指数分布に従うランダムな経過時間ごとにCustomerを生成するSourceクラスタと、銀行を訪れ複数のサービスカウンター(Queueで表現されるもの)の中から待ち行列がゼロまたは最小のqueueを訪れるCustomerクラスタ、そして各Queueの待ち行列数を返すNoInSystem関数の3つで構成される。 class S

  • なぜ Haskell ではキューが軽んじられているか? - あどけない話

    Haskell ではキューが欲しくなったら Data.Sequence を使えと言われる。Seq は両端キューだし、シーケンスとして使えば、連結(><)や分割(splitAt)が、ならし計算量で O(log N) という優れものである。しかし、内部がfinger treeなのでコードが複雑なのと、計算量が「ならし」なところが玉に傷である。 もっと単純で、最悪計算量を保証する(両端でない)キューが標準で提供されてもいい気がする。その候補には、リアルタイムキューがある。どうして標準でキューが提供されないのだろう? 僕なりの答えは「需要がない」だ。 問題を解くときにスタックはよく使うが、キューが必要な問題はそんなに思いつかない。僕はネットワーク屋なので、もちろんルータにはキューが必要なことは知っているが、それ以外で有名どころと言えば幅優先探索ぐらいだ。 幅優先探索 でも、Haskellではキュー

    なぜ Haskell ではキューが軽んじられているか? - あどけない話
  • 1