GLBasic forum

Codesnippets => Inline / 3rd party => Topic started by: Kitty Hello on 2007-Jul-06

Title: [Release] Multithreading
Post by: Kitty Hello on 2007-Jul-06
Code (glbasic) Select
GLOBAL magicnumber

StartThread()

WHILE TRUE

PRINT magicnumber, 100, 100
SHOWSCREEN
WEND





FUNCTION foo:
ENDFUNCTION

INLINE
extern "C" unsigned int _beginthread(void*, unsigned int stacksize, void* args);
void ThreadFunc( void *dummy ) {MyThreadSub();}
ENDINLINE



FUNCTION StartThread:
INLINE
_beginthread((void*)ThreadFunc, 0,NULL);
ENDINLINE
ENDFUNCTION



SUB MyThreadSub:
WHILE TRUE
magicnumber = RND(1024)
WEND
ENDSUB

Ohne Garantie, aber es läuft.
Title: Multithreading
Post by: WPShadow on 2007-Jul-06
Wie kann man das einsetzen? Wie kann ich mir das vorstellen?

W. <-- (verwirrt [VB - geschädigt])
Title: Multithreading
Post by: bigsofty on 2007-Jul-06
Threads are available in NO OTHER GAME BASIC, well done Gernot!

There's hope for my waisted 3800+ 2nd core yet ;)
Title: Multithreading
Post by: trucidare on 2007-Jul-06
Supi klasse danke :) nun brauch ich das nichtmehr mit sdl zu tun
*in der luft umher spring*
Title: Multithreading
Post by: tft on 2007-Jul-06
Hi....

wie sicher leuft das ? Und was ist mit einer CG? Oder handhabst du Variablen anders.
Title: Multithreading
Post by: Kitty Hello on 2007-Jul-09
Wenn Du auf (CG = common global?) zugreiffen möchtest, solltest Du synchronization objects einsetzten (CriticalSection oder Mutex).
Wenn Du's nicht findest, kann ich auch mal was dazu suchen.
Du solltest vermeiden GLBasic Befehle aufzurufen, da die sicher nicht MT safe sind. Wenn 2 Threads gleichzeitig auf SPLITSTR oder so zugreifen, ist warscheinlich Feierabend.
Title: Multithreading
Post by: WPShadow on 2007-Nov-06
Frage am Rande: Würde man mit diesem Verfahren auch Ladegeschwindigkeiten erhöhen? z.B. 2 Subs, in denen unterschiedliche Objekte in den Speicher geladen werden?
Title: Multithreading
Post by: Kitty Hello on 2007-Nov-06
Vergiss es. Die Threads synchronisieren kostet viel Zeit und Nerven.
Title: Multithreading
Post by: PIXELstir on 2007-Dec-10
Dazu braucht man aber zwingend die All In One Version von GLBasic, oder? Wegen Inline mein' ich.
Title: Multithreading
Post by: Kitty Hello on 2007-Dec-10
Die aktuelle DEMO kann schon auch INLINE, oder? Bin mir nicht mehr 100% sicher, aber ich dachte das die nicht mehr Feature-Limited ist.
Title: Multithreading
Post by: PIXELstir on 2007-Dec-10
Jaja, das ist kein Problem. Ich mein bloss weil ich erstmal 2D machen möchte mit Multiplattform Support werde ich eventuell nur Lite+Net Addon bestellen und da wär INLINE dann nicht dabei, oder? Nur damit ich das weiß ;)
Title: Multithreading
Post by: BumbleBee on 2007-Dec-10
Ich weiß das auch nicht. Sonst  nimm halt noch das 3D Addon dazu. Dann ist es mit Sicherheit dabei.;)

Cheers
Title: Multithreading
Post by: PIXELstir on 2007-Dec-10
Meine Geldmittel sind leider begrenzt, naja mal sehen was nach den Weinachtseinkäufen so übrig bleibt. Im Prinzip brauch ich INLINE ja auch nicht unbedingt.
Title: Multithreading
Post by: Kitty Hello on 2007-Dec-10
INLINE ist nur in PREMIUM. Also: 2D, 3D+NET.
DEMO geht aber immer (120 sek)