GithubHelp home page GithubHelp logo

pysyncq's Introduction

Python Synchronisation Queue

This is a multiprocessing data structure that coordinates a set of child processes in two senses.

  1. Data - Any connected process can add data to the queue
    for all others to read.
  2. Time - Processes can wait on the queue for new data to
    be added by any other.

Every process that connects to the same queue is both a reader and writer i.e. it is both a producer and a consumer. But a piece of data is not removed from the queue until every connected process has had a chance to read it. Hence, one process can signal all of the others to respond to the same information.

PyPI package at pypi.org/project/pysyncq

Online documentation at pysyncq.readthedocs.io

GitHub project at github.com/jsdpag/pysyncq

  • See docs/_build/html/index.html for basic API documentation.
  • See pysyncq/tests/demo.py for a simple demonstration of
    basic timing signals and message passing between processes.
  • See pysyncq/tests/benchmark.py for a simple benchmarking of the message transfer time from a sender to a reader.

Developed by:

0.0.1 - Support for spawn as well as fork child process starting methods. 0.0.0 - Initial release. Functional on Linux.

pysyncq's People

Contributors

jsdpag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

yarikoptic

pysyncq's Issues

Windows compatability

There are at least two problems.

  1. header.py uses Unix specific library resource.
  2. memoryview cannot be pickled across the spawn to a child process.

Work arounds:

  1. Check OS and assign hard-coded default value if Windows.
  2. Check OS. Establish memoryview objects in call to .open( ) method if Windows, rather than during .__init__( ). If *nix then do establish memoryviews during init, for sharing amongst all child processes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.