コード例 #1
0
ファイル: sleepless.py プロジェクト: e42s/cthreading
                  dest="timeout",
                  type="float",
                  help="number of seconds to sleep")
parser.set_defaults(threads=400, timeout=10)


def sleepless(options):
    import threading

    cond = threading.Condition(threading.Lock())
    threads = []

    for i in benchlib.range(options.threads):
        t = threading.Thread(target=sleep, args=(cond, options.timeout))
        t.daemon = True
        t.start()
        threads.append(t)

    for t in threads:
        t.join()


def sleep(cond, timeout):
    with cond:
        cond.wait(timeout)


if __name__ == "__main__":
    options, args = parser.parse_args(sys.argv)
    benchlib.run(sleepless, options)
コード例 #2
0
ファイル: whispers.py プロジェクト: nirs/cthreading
        import Queue as queue
    except ImportError:
        import queue

    leftmost = queue.Queue()
    left = leftmost
    for i in benchlib.range(options.threads):
        right = queue.Queue()
        t = threading.Thread(target=whisper, args=(left, right))
        t.daemon = True
        t.start()
        left = right

    for i in benchlib.range(options.jobs):
        right.put(1)

    for i in benchlib.range(options.jobs):
        n = leftmost.get()
        assert n == options.threads + 1


def whisper(left, right):
    while True:
        n = right.get()
        left.put(n + 1)


if __name__ == "__main__":
    options, args = parser.parse_args(sys.argv)
    benchlib.run(whispers, options)
コード例 #3
0
ファイル: sleepless.py プロジェクト: nirs/cthreading
parser = benchlib.option_parser("sleepless [options]")
parser.add_option("-s", "--timeout", dest="timeout", type="float",
                  help="number of seconds to sleep")
parser.set_defaults(threads=400, timeout=10)


def sleepless(options):
    import threading

    cond = threading.Condition(threading.Lock())
    threads = []

    for i in benchlib.range(options.threads):
        t = threading.Thread(target=sleep, args=(cond, options.timeout))
        t.daemon = True
        t.start()
        threads.append(t)

    for t in threads:
        t.join()


def sleep(cond, timeout):
    with cond:
        cond.wait(timeout)


if __name__ == "__main__":
    options, args = parser.parse_args(sys.argv)
    benchlib.run(sleepless, options)
コード例 #4
0
    try:
        import Queue as queue
    except ImportError:
        import queue

    src = queue.Queue()
    dst = queue.Queue()

    for i in benchlib.range(options.threads):
        t = threading.Thread(target=worker, args=(src, dst))
        t.daemon = True
        t.start()

    for i in benchlib.range(options.rounds):
        for j in benchlib.range(options.jobs):
            src.put(1)
        for j in benchlib.range(options.jobs):
            n = dst.get()
            assert n == 2


def worker(src, dst):
    while True:
        n = src.get()
        dst.put(n + 1)


if __name__ == "__main__":
    options, args = parser.parse_args(sys.argv)
    benchlib.run(threadpool, options)