Multithreading
Übersicht

![]() |
pixelshooterBetreff: Multithreading |
![]() Antworten mit Zitat ![]() |
---|---|---|
Unterstützt Blitz3d multicore-Prozessoren und wenn ja, wie spreche ich die an? | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein, tut es nciht, nur Bmax. | ||
between angels and insects |
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo wir grad schon bei Blitz Max sind, warum is'n der Kram billiger als Blitz 3d? Wat kanns denn nich? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
3D
Und um aufs Thema hier auch einzugehen: Multithreading kann es auch net (module in die richtung sind auch wertlos, weil sie auf Multicores zu abstürzen führen weil der Memorymanager nicht multithreaded ist. sieht man aber auf single core systemen nicht, weil dort der fall von 2 zeitgleichen zugriffsversuchen garnet eintreten kann) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
schon getestet oder gelesen?
ist mir ganz entgangen, ich hoffe auf nen link oder ähnlcihes |
||
between angels and insects |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Meinst du wegen Multithreading.
Gibt eine längere Diskussion im englischen Forum darüber in der auch Mark sich gemeldet hat. Ist eigentlich aber auch intuitiv klar, dass Multithreading nur funktionieren kann, wenn der GC multithreadsafe ist, was er aber leider nicht ist und min. für den Moment plant Mark das auch nicht zu ändern. Insofern funktionieren die Multithreadmodule ganz toll auf SingleCore Systemen, da dort keine 2 Threads gleichzeitig einen Zugriff erfragen können und somit Probleme nur selten auftreten können, aber auf Multicore wird das Szenario leider recht häufig eintreten. Da helfen auch Mutex nicht, da der GC diese nicht nutzt. Das heisst selbst wenn dein gesamtes Programm safe wäre, so würde der GC das ganze einfach abschiessen bei seiner regulären Tätigkeit. Die nötigen Multicore / Multiprozessorsystemen haben nur die wenigsten, um das in der Praxis zu beweisen. Allerdings gehört bereits das Wissen, dass in einem managed Environment der GC / Memorymanager threadsafe sein muss um multithreading nutzen zu können, zu den Grundlagen. Für den Moment heisst es also warten, bis das ganze rein kommt. Threads und parallele Verarbeitung sind allgemein ein heikles Thema, das in der praktischen Informatik (Anwendungsentwicklung) leider sehr vernachlässigt wurde, da es ja die Prozessoren nicht gab. Den Preis werden wir die nächsten Jahre bezahlen ... (in der theoretischen Infos hat man das nötige Wissen seit über einem Jahrzehnt) Bei falscher Nutzung kann man mit Multithread sein Programm sogar langsamer machen als wenn man einfach nur einen Thread genutzt hätte ... BM hat aber einen elementaren Vorteil gegenüber B3D: Auch wenn es kein Multithreading hat, so hat es doch Events und Hooks. Man kann also bereits so einen nichtlinearen Code aufbauen, der direkt auf Events reagiert, so das nicht mehr die gesamte Hauptschleife durchlaufen werden muss, wie es beim timed Programming (if millisecs() - lastupdate > XXX) noch der Fall ist. Das gibt bei intelligenter Nutzung bereits einen nicht unerheblichen Vorteil und auch Performance Vorteil. (von der Tatsache abgesehen, dass das Programm 0 CPU braucht, wenn gerade kein Event ansteht oder abgearbeitet wird) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group