Archief - C++ : Multithreading?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Da Turtle

Legacy Member
Weet er iemand waar ik een degelijke uitleg met voorbeelden enzo kan vinden over multithreading. Het wordt vermeld in het boek dat ik hier liggen heb, maar er wordt nog geen pagina aan besteed, dus weet ik aan geen kanten wat ermee bedoeld wordt. Zoiets van, hoe je het gebruikt en in welke gevallen dit bruikbaar is. (liefst ivm games, dan wel algemeen, maar dat moet niet.)

en euhm:
I used the force, niet echt veel gevonden.

Silenger.BE

Legacy Member
Vergeet niet de thread safe runtime te gebruiken :)
Multithreading is goed als je verschillende zaken tegelijk wil doen en wat controle over CPU gebruik wil hebbe per deel. Sommige nieuwe engines gebruiken nu threads voor audio maar als je eens leest hoeveel problemen ze gehad hadden om dit te synchroniceren met de rest... en maar te zwijgen van data corruptie (lezen en writen moet thread per thread gedaan worden wat misschien alles wat kan vertragen door gebruik te maken van critical sections.
Threads zijn zeer handig als je een GUI app hebt die niet mag vasthangen bij het uitvoeren van een cpu zwaar proces. Als je een game maakt is het denk ik nog altijd gemakkelijk als je gewoon in de main thread een loop hebt die alles doet...

Da Turtle

Legacy Member
Ik zou willen een stack gebruiken met een aantal bool loop() functies van verschillende klassen. Ik had eigenlijk gehoopt dit met threads op te kunnen lossen, maar ik denk dat het niks wordt. Ik kan een stack maken met bool functies, maar dat werkt niet voor functies van een klasse, enkel losstaande functies. Deze loop() functies zouden moeten uit verschillende klassen komen, iemand die weet hoe ik dit kan oplossen?

killgore

Legacy Member
eh
bevriende functies?
en dan met overloading verscheidene loop functies maken:
function loop(klasse1* object);
function loop(klasse2*object);
...

Da Turtle

Legacy Member
Dat zal mss wel nog lukken :D, waarom denk ik daar nooit aan :p. Kzal et eens proberen

Silenger.BE

Legacy Member
Elke class kan zijn eigen thread hebbe met zijn eigen data om mee te werken.
Waardoor je niet echt veel problemen hebt. Gewoon oplette als je data gebruikt die door andere threads gewrite wordt...

Edit: je bent best dat je eens wat tests met threads doet, je zal het ooit wel eens kunnen gebruiken...

Da Turtle

Legacy Member
Ja ik dacht dat ik zoiets zou kunnen doen, maar met dat er hier gezegd werd dat je daarmee moet opletten en dat ik ergens anders heb gezien dat het niet makkelijk debuggen is, zal ik wel proberen met een stack, alhoewel dit niet zo voordehandliggend lijkt. Als ik een probleempje tegenkom zal ik het hier wel posten :)

Da Turtle

Legacy Member
ok, dit is wat ik bedoel, maar het werkt natuurlijk niet, anders zou ik het niet vragen :D

zie deze class (bool stack class)
en deze class (gewoon een testklasse met een loop functie er in)
Nu wil ik dat ik zo'n loop functies uit een klasse (zie de tekstklasse) kan pushen in zo'n boolstack.

Voorbeeldje:
Code:
cBoolstack *test = new cBoolstack();
test1 *loopVb = new test1();

// en dan:
test->push(test->loop);

test->procesHead();

ik krijg:
'push' : cannot convert parameter 1 from 'bool (void)' to 'bool (__cdecl *)(void)'
Ik dacht wel dat et niet zou lukken, maar hoe doe ik het dan wel? :p

Da Turtle

Legacy Member
merci, kzal et eens bekijken :niceone:, kzit nu op school, dus da zal moeilijk gaan nu :)

// edit: keb et een snel bekeken, kzal wel posten als er problemen zijn, kdenk wel dat et zal lukken (hopelijk :p)

Da Turtle

Legacy Member
Merci Silenger, tis gelukt, keb zo een base klasse met een virtual bool loop() gemaakt die ik gebruik voor m'n stack klasse, en ik zal deze base klasse gebruiken voor ieder van m'n klassen voor m'n states van af te leiden. (nie erg als je 't nie verstaat omdat ik et crappy uitgelegd heb, twerkt) :applause:
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan