Mal nee blöde Frage: Seh ich richtig dass dies nur durch Parallelität sinnvoll lösbar ist?
2 Functionen:
always(){
while(true){
doStuff()
doStuffWithInput(this)
doStuffMore()
}
doStuffWithInput(WhileClass){
doOwnStuff()
x = WhileClass.demandChoice(a,b) << User Input abhängig / Methode soll nach Eingabe hier weiterlaufen/ von hier Starten
doStuffWith(x)
}
doStuffWithInput blockt bei demandChoice, ich brauche aber dass always() trotzdem weiterläuft. Die Idee einen Buffer in WhileClass zu haben und den demandChoice in eine Anfrage + Abholen des Ergebnissen aufzuteilen und dann einfach doStuff solange ignorieren bis da was im Buffer liegt hab ich erstmal verworfen weil mir dass nicht sinnvoll erschien. Jemand eine Sinnvolle Idee?
Geändert von [VK] (09. Februar 2017 um 04:59 Uhr)
Du hast dir praktisch alles selbst beantwortet, soweit ich es sehe. Der Aufruf 'demandChoice' kann zwei Sachen machen: Gespeicherten Content abholden und in 'x' laden oder er wartet, bis hier eine Eingabe kommt. Wie soll das sonst klappen, dass er kurz schaut ob grade jemand den Finger auf der Taste hat? Wobei, das könnte man sogar vermutlich machen, wenn man wollte . Jedenfalls bräuchtest du auch bei Option 2 Parallelität, denn irgendein Thread muss, unabhängig vom always(), Sachen vom Input in den Buffer packen...
Imo kommst du hier um Parallelität nicht rum.... wie auch.
|學而不思則罔,思而不學則殆。 ~ 孔子|
| Lernen ohne zu denken ist sinnlos, denken ohne zu lernen gefährlich. ~ Kong Zi |
| During times of universal deceit, telling the truth becomes a revolutionary act ~ George Orwell |
SdM Dez16 - XCOM2 Make Humanity Great again
Man könnte vermutlich auch noch mit so Zeug wie "class Maybe" rumhantieren und das ganze Funktional erschlagen.
Aber das Problem ist, dass diese Lösungen alle sehr hässlichen Code generieren und man bei mehreren Abfragen auch jedes Resultat speichern muss.
Diese Lösungen scheinen auch alle überaus kompliziert zu sein im Vergleich zu wait() blabla notifiy(). Ich würde halt gerne wissen, ob es eine schöne Lösung dafür gibt, oder ob man tatsächlich einfach auf Parallelität ausweichen soll...
Was genau stört dich an nem Thread für diesen Task?
|學而不思則罔,思而不學則殆。 ~ 孔子|
| Lernen ohne zu denken ist sinnlos, denken ohne zu lernen gefährlich. ~ Kong Zi |
| During times of universal deceit, telling the truth becomes a revolutionary act ~ George Orwell |
SdM Dez16 - XCOM2 Make Humanity Great again
Suchst du continuations?
Achtung Spoiler:
Heute bin ich mal wieder über ein Python-Anfängerproblem gestoplert, was ich immer mal wieder vergesse
is not unterscheidet sich von !=.
Ich wollte ein Flag mittels
setzen, was sich dummerweise immer als wahr herausstellteCode:flag = (url_arg is not "None")
Der Witz ist, dass man dann auch noch beim Gegencheck auf der Konsole aufpassen muss. Bei
ist u1 is u2 wahr, aber u1 is u3[:4] nicht.Code:> u1 = "None" > u2 = "None" > u3 = "NoneX"
P.S. Mein gcc-O3-memcpy-Problem vom letzten Mal besteht weiter aber betrifft nur meinen Laptop
is ist der Objektvergleich? Ich dachte, == wär das.
Ja, Objektvergleich. == entspricht __eq__/ equals() / Inhaltsvergleich.
...also, ich mach noch nicht so lange Python. Aber ist der String "None" nicht True, wenn er in bool konvertiert werden soll? Müsste man nicht die Konstante None benutzen?
Mit Naturgesetzen kann man nicht verhandeln. --Harald Lesch
Ein Atomkrieg würde die Menschheit auslöschen. Hätte aber auch Nachteile.
Die Sache ist unabhängig vom Inhalt des String und gilt auch für jeden anderen String statt "None".
Du sprichst einen anderen beliebten Fehler an, nähmlich, dass bool("[nichtleerer String]") immer wahr ist,
also bool(str(•)) nicht die Identitätsfunktion auf {True, False, None} ist.
Ich vermute mal Folgendes ist passiert:
None ist eine Python-Konstante für Objekte ohne Wert.
"None" ist dagegen einfach ein ganz gewöhnlicher String.
Würde man nun zB eine Funktion f(x), die kein return hat, mit y=f(x) aufrufen und dann if(y is not "None") fragen, dann ist y eben None und nicht "None" - daher ist das wahr.
Die korrekte Syntax wäre demnach if(y is not None) ohne Anführungsstriche.
Nee, es geht schon um den Text.
flag ist immer True, weil s und "Blub" zwei verschiedene Stringobjekte sind.PHP-Code:
s = "Blub"
flag = (s is not "Blub")
Was nutzt ihr für Tools zum Zeichnen von Diagrammen rund um den Code (kostenlos)?
Ich bin auf der Suche nach etwas, mit dem ich hin und wieder ein Klassendiagramm, ein ERP-Diagramm oder ein Flussdiagramm zeichnen kann.
An der Uni hatte ich mal was, das war proprietär und das fand ich scheiße; meistens kritzel ich das dann auf Papier, bin damit aber unzufrieden, weil die Zettel dann überall rumfliegen oder mal verloren gehen, vergessen werden,...
Verstand op nul, frituur op 180.