Die Befehle werden damit auch Threadsafe, aber nur soweit man nicht versucht auf das gleiche Objekt in 2 threads zuzugreifen:
2 images manipulieren in 2 threads: ok
1 image in 2 threads gleichzeitig verwenden: geht nicht
Wie es bei der Console ist weis ich nicht. Ist ja auch im Primzip eine gemeinsame Resource wie z.b. eine Datei.
Ich kann mir das nach dem Wochenende mal genauer ansehen.
PB 4.20 Crash mit Option Threadsafe
Ja, deshalb dachte ich das die Libs mit Threadsafe das intern managen,freak hat geschrieben:Wie es bei der Console ist weis ich nicht. Ist ja auch im Primzip eine gemeinsame Resource wie z.b. eine Datei.
z.b. über einen Mutex o.ä., so dass der String geschrieben wird, und erst
dann der nächste Thread auf die Console zugreifen kann.
Bei Dateien stelle ich mir das auch so vor, dass man aus mehreren Threads
mit WriteString ins gleiche Logfile schreiben kann.
Der interne Zugriff auf das Handle (File, Console, ...) müsste dann
abgesichert werden, während ein Befehl ausgeführt wird.
Das wäre jedenfalls das was ich unter threadsicher verstehe.
Wenn es nicht so ist, dann muß man das nur wissen. Macht dann halt
bissl mehr Arbeit es selbst abzusichern, aber OK wenn man es weiß.
Danke! Wäre nett von Dir wenn Du dann nochmal bescheid geben kannst,freak hat geschrieben:Ich kann mir das nach dem Wochenende mal genauer ansehen.
oder das vielleicht nochmal offiziell dokumentiert wird (welche Befehle/Libs
sind richtig threadsicher).
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Alle File-Befehle über einen Mutex abzusichern, was sich auf alle in PB geschriebenen Programme
auswirkt nur weil einer auf die Idee kommen könnte aus 2 Threads in die selbe Datei zu schreiben wäre overkill.
Der Threadsafe-modus beschränkt sich darauf abzusichern das die Befehle einer Lib sich
gegenseitig nicht in die Quere kommen wenn sie eigentlich verschiedene Dinge tun.
(z.B. das Object Management: ein Thread bearbeitet gerade ein Image während ein zweiter gerade ein neues erstellt)
Wenn man dann das selbe Objekt aus 2 Threads bearbeiten will muss man eben selbst mit
den Mutex-Befehlen für Schutz sorgen.
Nur so ist es möglich die Befehle auch in Threads noch ohne allzugroße Geschwindigkeitsverluste auszuführen.
auswirkt nur weil einer auf die Idee kommen könnte aus 2 Threads in die selbe Datei zu schreiben wäre overkill.
Der Threadsafe-modus beschränkt sich darauf abzusichern das die Befehle einer Lib sich
gegenseitig nicht in die Quere kommen wenn sie eigentlich verschiedene Dinge tun.
(z.B. das Object Management: ein Thread bearbeitet gerade ein Image während ein zweiter gerade ein neues erstellt)
Wenn man dann das selbe Objekt aus 2 Threads bearbeiten will muss man eben selbst mit
den Mutex-Befehlen für Schutz sorgen.
Nur so ist es möglich die Befehle auch in Threads noch ohne allzugroße Geschwindigkeitsverluste auszuführen.
OK, vielen Dank freak! Ich denke nun verstanden zu haben was mitfreak hat geschrieben:Der Threadsafe-modus beschränkt sich darauf abzusichern das die Befehle einer Lib sich
gegenseitig nicht in die Quere kommen wenn sie eigentlich verschiedene Dinge tun.
(z.B. das Object Management: ein Thread bearbeitet gerade ein Image während ein zweiter gerade ein neues erstellt)
Wenn man dann das selbe Objekt aus 2 Threads bearbeiten will muss man eben selbst mit
den Mutex-Befehlen für Schutz sorgen.
Nur so ist es möglich die Befehle auch in Threads noch ohne allzugroße Geschwindigkeitsverluste auszuführen.
threadsicher genau gemeint ist.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck