Skip to main content

A `ThreadedProcessPoolExecutor` is formed by a modified `ProcessPoolExecutor` that generates processes that use a `ThreadPoolExecutor` instance to run the given tasks.

Project description

https://img.shields.io/pypi/v/threadedprocess.svg https://img.shields.io/pypi/l/threadedprocess.svg https://img.shields.io/pypi/pyversions/threadedprocess.svg https://travis-ci.org/nilp0inter/threadedprocess.svg?branch=master

The ThreadedProcessPoolExecutor class is an Executor subclass that uses a pool of process with an inner pool of threads on each process to execute calls asynchronously.

ThreadedProcessPoolExecutor is formed by a modified ProcessPoolExecutor that processes (with at most max_processes) that use a ThreadPoolExecutor instance (with at most max_threads) to run the given tasks.

If max_processes is None or not given, it will default to the number of processors on the machine.

If max_threads is None or not given, it will default to the number of processors on the machine, multiplied by 5.

Example

from concurrent.futures import as_completed
import math

from threadedprocess import ThreadedProcessPoolExecutor
import requests

RNGURL = "https://www.random.org/integers/?num=1&min=1&max=100000000&col=1&base=10&format=plain&rnd=new"


def get_prime():
    n = int(requests.get(RNGURL).text)

    if n % 2 == 0:
        return (n, False)

    sqrt_n = int(math.floor(math.sqrt(n)))
    for i in range(3, sqrt_n + 1, 2):
        if n % i == 0:
            return (n, False)
    return (n, True)


with ThreadedProcessPoolExecutor(max_processes=4, max_threads=16) as executor:
    futures = []

    for _ in range(128):
        futures.append(executor.submit(get_prime))

    for future in as_completed(futures):
        print('%d is prime: %s' % future.result())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

threadedprocess-0.0.5.tar.gz (4.0 kB view details)

Uploaded Source

File details

Details for the file threadedprocess-0.0.5.tar.gz.

File metadata

File hashes

Hashes for threadedprocess-0.0.5.tar.gz
Algorithm Hash digest
SHA256 712e8b711eefc82e052857b0a5b1c911c987819dd9d94ccb9d7b3aeb035a46ae
MD5 7e9a036554699bcd6d18f7b263696cc1
BLAKE2b-256 175abc35b33ea71f498823892c2c46fe1190a276b1e05eaa476f7076f5ff4ad6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page