Threading mit BlitzMax(nur Windows)
Übersicht BlitzMax, BlitzMax NG FAQs und Tutorials
Jan_Ehemaliger AdminBetreff: Threading mit BlitzMax(nur Windows) |
Do, Aug 11, 2005 13:57 Antworten mit Zitat |
|
---|---|---|
Also,
erstmal, es ist nciht von mir, ich will es der Deutschen Kommunity nur näher bringen. Ich habe es nur noch einmal aufbereitet, und 1-2 Fehler entfernt Author:Antony Wells respekt ihm. hier der Download: http://www.blitz-pasting.net/i...amp;id=126 Habe mit Bmax 1.10 schonmal vorkompiled für euch! Also, h2use: BlitzBasic: [AUSKLAPPEN] 'Den Thread Mod mit Compilen Achtung, alle daten, wo mehr als 1 Thread drauf zugreifen, müssen Global sein! Achtung, die threads laufen nebeneinander! sobald ihr einen Thread mit tthread.SetPriority(ne sehr große Zahl) macht, kackt nciht nur euer windows ab(win 95-me), sondern auch alle anderen Prozesse, bis dieser fertig ist. falls es einer ist, wie der Anzeige Thread oben, habt ihr fast eine Endlosschleife! Also, viel Spaß! |
||
between angels and insects |
bruZard |
Do, Aug 11, 2005 14:18 Antworten mit Zitat |
|
---|---|---|
Wirklich ausgezeichnet ... nur schade dass es ausschliesslich unter Win funktioniert. | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Jan_Ehemaliger Admin |
Do, Aug 11, 2005 14:22 Antworten mit Zitat |
|
---|---|---|
ja, men kann aber leider auch keinen Fake Programmieren, weil es einfach vom Betriebssystem kommen muss :-/ | ||
between angels and insects |
Nox |
Do, Aug 11, 2005 15:38 Antworten mit Zitat |
|
---|---|---|
Kenne mich mit BlitzMAX nicht genug aus, aber es gibt doch z.B. unter Linux die pthread-Library für Multithreading. Funktioniert in etwa haargenau wie die API-Funktionen von Windows. Außer, dass sie andere Funktionsnamen und teilweise verschiedene Argumentelisten haben. Schade, dass ich kein BlitzMAX habe, sonst könnte ich vll einen Wrapper programmieren.
Ihr solltet auch vorsichtig sein, wenn mehr als nur ein Thread auf ein und dieselbe Variable zugreift. Für diese Fälle könnte man beispielweise auf sog. "Events" zurückgreifen (siehe MSDN "CreateEvent"). Damit lassen sich die Threads erheblich besser synchronisieren. Und eigentlich ist das Setzen der Priorität auch nicht immer notwendig. Synchronisation ist alles. |
||
bruZard |
Do, Aug 11, 2005 15:50 Antworten mit Zitat |
|
---|---|---|
Bei Threads muss man ganz im allg. sehr vorsichtig sein und sich nicht darauf verlassen das der UBER-GarbageCollector irgendetwas für einen tut. Aber in Hinblick auf meinen mißglückten Versuch in B3D Streaming zu implementieren wäre dieses Modul wahrlich ein Schritt nach vorn. | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Nox |
Do, Aug 11, 2005 15:54 Antworten mit Zitat |
|
---|---|---|
Ganz genau. Vorallem darf man sich schonmal garnicht darauf verlassen, dass der fiese Scheduler von Windows so arbeitet, wie man es gerne hätte. Threads ohne optimale Synchronisation oder strukturiertem Aufbau führen früher oder später zu asynchronen Programmen oder bösen Deadlocks - mit ganz viel Glück direkt im Kernel, was einen Neustart zur Folge hat. | ||
Dreamora |
Do, Aug 11, 2005 16:00 Antworten mit Zitat |
|
---|---|---|
Threading wär schon praktisch, vor allem in anbetracht der Dual / Quad Core Zukunft vor allem in Bezug auf Max3D ... hoffen wir, dass es spätestens damit dann ein offizielles Threading drin hat, dass Crossplattform arbeitet ... | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Jan_Ehemaliger Admin |
Fr, Aug 12, 2005 7:24 Antworten mit Zitat |
|
---|---|---|
hm, offizielles Threading, Dreamora, glaubst du da wirklich dran? | ||
between angels and insects |
bruZard |
Fr, Aug 12, 2005 8:42 Antworten mit Zitat |
|
---|---|---|
Jan_ hat Folgendes geschrieben: hm, offizielles Threading, Dreamora, glaubst du da wirklich dran?
Warum nicht, es muss ja nicht von Mark kommen. LUA wurde auch von einem User portiert und ist nun Bestandteil des offz. Paketes. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Dreamora |
Fr, Aug 12, 2005 19:29 Antworten mit Zitat |
|
---|---|---|
Daran glauben: Irgendwo schon
Warum: Weil es Teile gibt im geplanten von Mark, dass ohne Multithreading wieder so scheisse is wie früher. Damit meine ich speziell Dinge wie Physik, Terrain und Netzwerk. Speziell da langsam aber sicher MultiCore als Zukunft eingemeisselt ist, wirds über kurz oder lang kommen müssen sollte er nicht plannen die Sprache direkt als ernsthafte Sprache deklassieren zu wollen uns wieder auf "Spielesprache" zu stellen wie B3D |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Sebe |
So, Aug 14, 2005 18:44 Antworten mit Zitat |
|
---|---|---|
Ausserdem beherrscht PureBasic auch Threading und da wird Mark doch nicht riskieren, wegen so einer Lapalie schlechter dazustehen | ||
BtbN |
So, Dez 11, 2005 17:35 Antworten mit Zitat |
|
---|---|---|
Hm, irgendwie funzt der DL nichmehr.
Wo bekommt man das denn noch her? Oda wie wärs mit neu hochladen? ^^ Und dann direkt für 1.14 vorkompiliert, plz. |
||
rema |
Mo, Dez 12, 2005 7:43 Antworten mit Zitat |
|
---|---|---|
Du musst nur im eng. Forum mal suchen. Das ist keine Geburt von Jan_ | ||
Jan_Ehemaliger Admin |
Mo, Dez 12, 2005 9:18 Antworten mit Zitat |
|
---|---|---|
ist bei den Aktuellen sachen mit dabei, threading ist für Windows bei Bmax bereits includet! | ||
between angels and insects |
AvaGast |
Mo, Dez 12, 2005 9:35 Antworten mit Zitat |
|
---|---|---|
Kann mir mal jemand erklären, was das ist? | ||
bruZard |
Mo, Dez 12, 2005 10:17 Antworten mit Zitat |
|
---|---|---|
Wenn Du einen Teil Deines Programmes als eigenständigen Thread anlegst läuft dieser Teil parallel zum Rest des Programmes.
Beispiel: Du könntest, während das Programm Daten von der Platte liest, eine Animation abspielen. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
AvaGast |
Mo, Dez 12, 2005 11:09 Antworten mit Zitat |
|
---|---|---|
Hm, achso. Aber das lässt sich mit OOP doch recht einfach programmieren so etwas. Und es ging doch auch vorher schon. Also ich hab das zumindest schon öfter mal so umgesetzt. Laderoutine als Objekt anlegen und mit der Animation in einer Schleife ablaufen lassen. Blup. | ||
Jan_Ehemaliger Admin |
Mo, Dez 12, 2005 11:21 Antworten mit Zitat |
|
---|---|---|
ja, das stimmt schon, aber hier wird das eigens von windows getrennt.
schönes Beispiel dafür ist Musik, du startest du musik 1mal, aber laufen tut sie dann die ganze zeit. |
||
between angels and insects |
regaa |
Mo, Dez 12, 2005 14:42 Antworten mit Zitat |
|
---|---|---|
Oder endlich mal keine delays während eines tcp-handshakes. | ||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
BtbN |
Di, Dez 13, 2005 15:10 Antworten mit Zitat |
|
---|---|---|
Tut mir ja sehr leid, aber ich finde das nicht. | ||
Übersicht BlitzMax, BlitzMax NG FAQs und Tutorials
Powered by phpBB © 2001 - 2006, phpBB Group