當前位置: 首頁>>代碼示例>>Python>>正文


Python multiprocessing.active_children方法代碼示例

本文整理匯總了Python中multiprocessing.active_children方法的典型用法代碼示例。如果您正苦於以下問題:Python multiprocessing.active_children方法的具體用法?Python multiprocessing.active_children怎麽用?Python multiprocessing.active_children使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在multiprocessing的用法示例。


在下文中一共展示了multiprocessing.active_children方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_multiprocessing

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_multiprocessing(app):
    """Tests that the number of children we produce is correct"""
    # Selects a number at random so we can spot check
    num_workers = random.choice(range(2, multiprocessing.cpu_count() * 2 + 1))
    process_list = set()

    def stop_on_alarm(*args):
        for process in multiprocessing.active_children():
            process_list.add(process.pid)
            process.terminate()

    signal.signal(signal.SIGALRM, stop_on_alarm)
    signal.alarm(3)
    app.run(HOST, PORT, workers=num_workers)

    assert len(process_list) == num_workers 
開發者ID:huge-success,項目名稱:sanic,代碼行數:18,代碼來源:test_multiprocessing.py

示例2: test_multiprocessing_with_blueprint

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_multiprocessing_with_blueprint(app):
    # Selects a number at random so we can spot check
    num_workers = random.choice(range(2, multiprocessing.cpu_count() * 2 + 1))
    process_list = set()

    def stop_on_alarm(*args):
        for process in multiprocessing.active_children():
            process_list.add(process.pid)
            process.terminate()

    signal.signal(signal.SIGALRM, stop_on_alarm)
    signal.alarm(3)

    bp = Blueprint("test_text")
    app.blueprint(bp)
    app.run(HOST, PORT, workers=num_workers)

    assert len(process_list) == num_workers


# this function must be outside a test function so that it can be
# able to be pickled (local functions cannot be pickled). 
開發者ID:huge-success,項目名稱:sanic,代碼行數:24,代碼來源:test_multiprocessing.py

示例3: test_terminate

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_terminate(self):
        if self.TYPE == 'threads':
            self.skipTest('test not appropriate for {}'.format(self.TYPE))

        p = self.Process(target=self._test_terminate)
        p.daemon = True
        p.start()

        self.assertEqual(p.is_alive(), True)
        self.assertIn(p, self.active_children())
        self.assertEqual(p.exitcode, None)

        p.terminate()

        join = TimingWrapper(p.join)
        self.assertEqual(join(), None)
        self.assertTimingAlmostEqual(join.elapsed, 0.0)

        self.assertEqual(p.is_alive(), False)
        self.assertNotIn(p, self.active_children())

        p.join()

        # XXX sometimes get p.exitcode == 0 on Windows ...
        #self.assertEqual(p.exitcode, -signal.SIGTERM) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:27,代碼來源:test_multiprocessing.py

示例4: tearDownClass

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def tearDownClass(cls):
        # only the manager process should be returned by active_children()
        # but this can take a bit on slow machines, so wait a few seconds
        # if there are other children too (see #17395)
        t = 0.01
        while len(multiprocessing.active_children()) > 1 and t < 5:
            time.sleep(t)
            t *= 2
        gc.collect()                       # do garbage collection
        if cls.manager._number_of_objects() != 0:
            # This is not really an error since some tests do not
            # ensure that all processes which hold a reference to a
            # managed object have been joined.
            print('Shared objects which still exist at manager shutdown:')
            print(cls.manager._debug_info())
        cls.manager.shutdown()
        cls.manager.join()
        cls.manager = None 
開發者ID:Microvellum,項目名稱:Fluid-Designer,代碼行數:20,代碼來源:_test_multiprocessing.py

示例5: test_server_multiproc

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_server_multiproc(mocker, set_timeout, restore_signal, start_method):

    mpctx = mp.get_context(start_method)
    mocker.patch('aiotools.server.mp', mpctx)

    started = mpctx.Value('i', 0)
    terminated = mpctx.Value('i', 0)
    proc_idxs = mpctx.Array('i', 3)

    set_timeout(0.2, interrupt)
    aiotools.start_server(myserver_multiproc, num_workers=3,
                          args=(started, terminated, proc_idxs))

    assert started.value == 3
    assert terminated.value == 3
    assert list(proc_idxs) == [0, 1, 2]
    assert len(mp.active_children()) == 0 
開發者ID:achimnol,項目名稱:aiotools,代碼行數:19,代碼來源:test_server.py

示例6: test_server_multiproc_custom_stop_signals

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_server_multiproc_custom_stop_signals(
        mocker, set_timeout, restore_signal, start_method):

    mpctx = mp.get_context(start_method)
    mocker.patch('aiotools.server.mp', mpctx)

    started = mpctx.Value('i', 0)
    terminated = mpctx.Value('i', 0)
    received_signals = mpctx.Array('i', 2)
    proc_idxs = mpctx.Array('i', 2)

    set_timeout(0.2, interrupt_usr1)
    aiotools.start_server(myserver_multiproc_custom_stop_signals,
                          num_workers=2,
                          stop_signals={signal.SIGUSR1},
                          args=(started, terminated, received_signals, proc_idxs))

    assert started.value == 2
    assert terminated.value == 2
    assert list(received_signals) == [signal.SIGUSR1, signal.SIGUSR1]
    assert list(proc_idxs) == [0, 1]
    assert len(mpctx.active_children()) == 0 
開發者ID:achimnol,項目名稱:aiotools,代碼行數:24,代碼來源:test_server.py

示例7: test_end_to_end

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_end_to_end(self):
        autosave_file = self.autosave_file
        btcrpass.parse_arguments(self.E2E_ARGS,
                                 tokenlist            = StringIO(self.E2E_TOKENLIST),
                                 exclude_passwordlist = StringIO(self.E2E_EXCLUDELIST),
                                 data_extract         = self.E2E_DATA_EXTRACT,
                                 autosave             = autosave_file)
        self.assertEqual("btcr-test-password", btcrpass.main()[0])
        for process in multiprocessing.active_children():
            process.join()  # wait for any remaining child processes to exit cleanly

        # Verify the exact password number where it was found to ensure password ordering hasn't changed
        autosave_file.seek(SAVESLOT_SIZE)
        savestate = cPickle.load(autosave_file)
        self.assertEqual(savestate.get(b"skip"), 103762)

    # Repeat the test above using the same autosave file, starting off just before the password was found 
開發者ID:gurnec,項目名稱:btcrecover,代碼行數:19,代碼來源:test_passwords.py

示例8: test_skip

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_skip(self):
        autosave_file = BytesIONonClosing()
        btcrpass.parse_arguments(self.E2E_ARGS + [tstr("--skip=103763")],
                                 tokenlist            = StringIO(self.E2E_TOKENLIST),
                                 exclude_passwordlist = StringIO(self.E2E_EXCLUDELIST),
                                 data_extract         = self.E2E_DATA_EXTRACT,
                                 autosave             = autosave_file)
        self.assertIn("Password search exhausted", btcrpass.main()[1])
        for process in multiprocessing.active_children():
            process.join()  # wait for any remaining child processes to exit cleanly

        # Verify the password number where the search started
        autosave_file.seek(0)
        savestate = cPickle.load(autosave_file)
        self.assertEqual(savestate.get(b"skip"), 103763)

        # Verify the total count of passwords
        autosave_file.seek(SAVESLOT_SIZE)
        savestate = cPickle.load(autosave_file)
        self.assertEqual(savestate.get(b"skip"), 139652)


# QuickTests: all of Test01Basics, Test02Anchors, Test03WildCards, and Test04Typos,
# all of Test05CommandLine except the "large" tests, and select quick tests from
# Test08KeyDecryption 
開發者ID:gurnec,項目名稱:btcrecover,代碼行數:27,代碼來源:test_passwords.py

示例9: teardown_test_type

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def teardown_test_type(test_type, runtimes, request_handler):
    from functools import partial
    def wait_for_it(peer):
        while True:
            try:
                request_handler.get_node_id(peer)
            except Exception:
                return True
        return False

    if test_type == "local":
        for peer in runtimes:
            request_handler.quit(peer)
        for peer in runtimes:
            retry(10, partial(wait_for_it, peer), lambda r: r, "Failed to stop peer %r" % (peer,))
        for p in multiprocessing.active_children():
            p.terminate()
            time.sleep(1) 
開發者ID:EricssonResearch,項目名稱:calvin-base,代碼行數:20,代碼來源:helpers.py

示例10: teardown_slow

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def teardown_slow(runtimes, request_handler, hostname):
    request_handler.set_credentials({"user": "user0", "password": "pass0"})
    for i in range(1, len(runtimes)):
        _log.info("kill runtime {}".format(i))
        try:
            request_handler.quit(runtimes[i]["RT"])
        except Exception:
            _log.error("Failed quit for node {}".format(i))
    # Kill Auth/Authz node last since the other nodes need it for authorization
    # of the kill requests
    time.sleep(2)
    try:
        request_handler.quit(runtimes[0]["RT"])
    except Exception:
        _log.error("Failed quit for node 0")
    time.sleep(0.2)
    for p in multiprocessing.active_children():
        p.terminate()
    # They will die eventually (about 5 seconds) in most cases, but this makes sure without wasting time
    for i in range(len(runtimes)):
        os.system("pkill -9 -f 'csruntime -n {} -p 500{}'" .format(hostname,i))
    time.sleep(0.2) 
開發者ID:EricssonResearch,項目名稱:calvin-base,代碼行數:24,代碼來源:helpers.py

示例11: test_issue_480_processes

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_issue_480_processes(self):
        client = self.sync_client
        before = len(multiprocessing.active_children())
        for idx in range(10):
            response = client.api_test()
            self.assertIsNotNone(response)
        after = len(multiprocessing.active_children())
        self.assertEqual(0, after - before) 
開發者ID:slackapi,項目名稱:python-slackclient,代碼行數:10,代碼來源:test_issue_480.py

示例12: test_issue_480_processes_async

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_issue_480_processes_async(self):
        client = self.async_client
        before = len(multiprocessing.active_children())
        for idx in range(10):
            response = await client.api_test()
            self.assertIsNotNone(response)
        after = len(multiprocessing.active_children())
        self.assertEqual(0, after - before)

    # fails with Python 3.6 
開發者ID:slackapi,項目名稱:python-slackclient,代碼行數:12,代碼來源:test_issue_480.py

示例13: test_process

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_process(self):
        q = self.Queue(1)
        e = self.Event()
        args = (q, 1, 2)
        kwargs = {'hello':23, 'bye':2.54}
        name = 'SomeProcess'
        p = self.Process(
            target=self._test, args=args, kwargs=kwargs, name=name
            )
        p.daemon = True
        current = self.current_process()

        if self.TYPE != 'threads':
            self.assertEqual(p.authkey, current.authkey)
        self.assertEqual(p.is_alive(), False)
        self.assertEqual(p.daemon, True)
        self.assertNotIn(p, self.active_children())
        self.assertTrue(type(self.active_children()) is list)
        self.assertEqual(p.exitcode, None)

        p.start()

        self.assertEqual(p.exitcode, None)
        self.assertEqual(p.is_alive(), True)
        self.assertIn(p, self.active_children())

        self.assertEqual(q.get(), args[1:])
        self.assertEqual(q.get(), kwargs)
        self.assertEqual(q.get(), p.name)
        if self.TYPE != 'threads':
            self.assertEqual(q.get(), current.authkey)
            self.assertEqual(q.get(), p.pid)

        p.join()

        self.assertEqual(p.exitcode, 0)
        self.assertEqual(p.is_alive(), False)
        self.assertNotIn(p, self.active_children()) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:40,代碼來源:test_multiprocessing.py

示例14: test_active_children

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_active_children(self):
        self.assertEqual(type(self.active_children()), list)

        p = self.Process(target=time.sleep, args=(DELTA,))
        self.assertNotIn(p, self.active_children())

        p.daemon = True
        p.start()
        self.assertIn(p, self.active_children())

        p.join()
        self.assertNotIn(p, self.active_children()) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:14,代碼來源:test_multiprocessing.py

示例15: test_number_of_objects

# 需要導入模塊: import multiprocessing [as 別名]
# 或者: from multiprocessing import active_children [as 別名]
def test_number_of_objects(self):
        EXPECTED_NUMBER = 1                # the pool object is still alive
        multiprocessing.active_children()  # discard dead process objs
        gc.collect()                       # do garbage collection
        refs = self.manager._number_of_objects()
        debug_info = self.manager._debug_info()
        if refs != EXPECTED_NUMBER:
            print self.manager._debug_info()
            print debug_info

        self.assertEqual(refs, EXPECTED_NUMBER)

#
# Test of creating a customized manager class
# 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:17,代碼來源:test_multiprocessing.py


注:本文中的multiprocessing.active_children方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。