[Release] Multithreading

Previous topic - Next topic

Kitty Hello

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.

WPShadow

Wie kann man das einsetzen? Wie kann ich mir das vorstellen?

W. <-- (verwirrt [VB - geschädigt])
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

bigsofty

Threads are available in NO OTHER GAME BASIC, well done Gernot!

There's hope for my waisted 3800+ 2nd core yet ;)
Cheers,

Ian.

"It is practically impossible to teach good programming style to students that have had prior exposure to BASIC.  As potential programmers, they are mentally mutilated beyond hope of regeneration."
(E. W. Dijkstra)

trucidare

Supi klasse danke :) nun brauch ich das nichtmehr mit sdl zu tun
*in der luft umher spring*
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

tft

Hi....

wie sicher leuft das ? Und was ist mit einer CG? Oder handhabst du Variablen anders.

Kitty Hello

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.

WPShadow

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?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Vergiss es. Die Threads synchronisieren kostet viel Zeit und Nerven.

PIXELstir

Dazu braucht man aber zwingend die All In One Version von GLBasic, oder? Wegen Inline mein' ich.

Kitty Hello

Die aktuelle DEMO kann schon auch INLINE, oder? Bin mir nicht mehr 100% sicher, aber ich dachte das die nicht mehr Feature-Limited ist.

PIXELstir

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ß ;)

BumbleBee

Ich weiß das auch nicht. Sonst  nimm halt noch das 3D Addon dazu. Dann ist es mit Sicherheit dabei.;)

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

PIXELstir

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.

Kitty Hello

INLINE ist nur in PREMIUM. Also: 2D, 3D+NET.
DEMO geht aber immer (120 sek)