multitasken

Multitask maakt Python-programma's mogelijk om generatoren (AKA Coroutines) te gebruiken om coöperatieve multitasking en asynchrone I / O uit te voeren.
Download nu

multitasken Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Prijs:
  • FREE
  • Naam uitgever:
  • Chris Stawarz
  • Uitgever website:
  • http://o2s.csail.mit.edu/o2s-wiki/multitask

multitasken Tags


multitasken Beschrijving

Multitask maakt Python-programma's mogelijk om generatoren (AKA Coroutines) te gebruiken om coöperatieve multitasking en asynchrone I / O uit te voeren. Multitask maakt Python-programma's mogelijk om generatoren (AKA Coroutines) te gebruiken om coöperatieve multitasking en asynchrone I / O uit te voeren. Toepassingen Geschreven met Multitask bestaan uit een reeks samenwerkende taken die op een gedeelde taakbeheerder zijn wanneer ze een (potentieel) blokkerende werking uitvoeren, zoals I / O op een stopcontact of gegevens van een wachtrij krijgen. De taakbeheer schort de taak tijdelijk op (dat andere taken in de tussentijd kunnen worden uitgevoerd) en vervolgens opnieuw opstarten wanneer de blokkerende werking is voltooid. Een dergelijke aanpak is geschikt voor toepassingen die anders zouden moeten gebruiken Select () en / of meerdere threads om een concurrency te bereiken. Dit project is gratis software, verdeeld onder de MIT-licentie. Uitkingsmeldingen: als een heel eenvoudig voorbeeld, is hier hoe men kan gebruiken Multitask om twee niet-gerelateerde taken toe te staan gelijktijdig te werken: >>> DEF-printer (bericht): ... terwijl TRUE: ... PRINT MESSAGE ... OPGENOMEN ... >>> Multitask.Add (printer ('Hallo') ) >>> multitask.add (printer ('vaarwel')) >>> multitask.run () Hellogoodbyehellogoodbyehellogoodbye Voor een nuttiger voorbeeld, hier is hoe men een multitasking-server kan implementeren die meerdere kansen Concurrent Client-verbindingen: DEF LUIKERAAR (SOCK): Terwijl TRUE: conn, adres = (levering multitask.accept (sok)) multitask.add (client_handler (conn)) Def client_handler (sok): Terwijl TRUE: verzoek = (levert multitasker op. RECV (Sok, 1024)) Indien niet aanvraag: Break Response = handvat_request (aanvraag) levert multitask.SEND (Sok, reactie) multitask.Run () De functies en klassen in de Multitask-module maken taken toe om te leveren voor I / O-operaties op aansluitingen en bestandsdescriptoren, het toevoegen / verwijderen van gegevens aan / naar wachtrijen, of slapen voor een bepaald interval. Bij het opgeven kan een taak ook een time-out specificeren. Indien de werking waarvoor de taak wordt opgeleverd na het gegeven aantal seconden niet is voltooid, wordt de taak opnieuw opgestart, en een time-out uitzondering wordt opgehaald op het punt van oplevering. Taken kunnen ook andere taken opleveren, die de samenstelling van taken en hergebruik mogelijk maakt van bestaande multitaskingcode. Een kindertaak wordt uitgevoerd totdat het een uitzondering voltooit of verhoogt, en de uitvoer of uitzondering ervan wordt aan zijn ouder gepresteerd. Bijvoorbeeld: >>> Def ouder (): ... Probeer: ... Print 'Good Child zegt:% S'% (Yield Child ()) ... Print 'Bad Child zegt:% S'% (opbrengst Kind (slecht = true)) ... behalve uitzondering, e: ... afdrukken 'Gevangen uitzondering:% s'% e ... >>> Def kind (slecht = false): ... indien slecht: .. . Verhoog RuntimeError ('Oeps!') ... opleveren 'Hallo, moeder!' ... >>> multitask.add (ouder ()) >>> multitask.run () Good Child zegt: Hallo, Mam! Gevangen Uitzondering: Oeps! Vereisten: · Python 2.5 of hoger is nieuw in deze release: · Kindertaken retourneren nu waarden naar hun ouder door het verhogen van stopiteratie met de retourwaarden als argumenten. · Get_default_Task_Manager () is toegevoegd om toegang te bieden tot de standaard TaskManager-instantie Gebruikt door Add () en RUN (). · Readline () is toegevoegd, die (op Unix-achtige systemen) nuttig is voor het niet-blokkeren van niet-blokkering van de stdout van een kindproces.


multitasken Gerelateerde software

Dial-up Bot

Dial-up Bot-project is bedoeld om een volledig functionele geautomatiseerde vervanging te zijn voor de /etc/ppp/ip-enarchie. ...

190

Downloaden

Tinydyn

Tinydyn biedt een pakket voor het maken en gebruiken van dynamische DNS-services. ...

156

Downloaden