Ik heb een server die verbindingen onderhoud met apparaten.
In grote lijnen is het zo opgebouwd dat er een main is die luistert en verbindingen accepteert. Elke verbinding krijgt zijn eigen thread die wacht totdat het apparaat iets periodiek verzend.
Elke thread vult op het moment dat hij iets ontvangt een buffertje met de ontvangen stream.
Deze stream van bytes worden vervolgens één voor één verwerkt. De stream gaat dus een functie in die er een mutex opgooit en deze mutex gaat er weer vanaf als die klaar is en dan wordt de volgende stream er weer in gegooid door een van de threads.
Het aantal apparaten is echter gegroeid en er zal dus een grens aan komen dat die ene functie met de mutex het niet meer aan kan. Ik wil dus meerdere simultaan laten draaien.
Het punt is dus alleen dat die lock niet voor niks is en ze dus niet door elkaar mogen lopen. Het lijkt mij dus dat een thread niks wordt (gedeeld geheugen)? Zou het forken van dit proces wel een optie zijn?
In grote lijnen is het zo opgebouwd dat er een main is die luistert en verbindingen accepteert. Elke verbinding krijgt zijn eigen thread die wacht totdat het apparaat iets periodiek verzend.
Elke thread vult op het moment dat hij iets ontvangt een buffertje met de ontvangen stream.
Deze stream van bytes worden vervolgens één voor één verwerkt. De stream gaat dus een functie in die er een mutex opgooit en deze mutex gaat er weer vanaf als die klaar is en dan wordt de volgende stream er weer in gegooid door een van de threads.
Het aantal apparaten is echter gegroeid en er zal dus een grens aan komen dat die ene functie met de mutex het niet meer aan kan. Ik wil dus meerdere simultaan laten draaien.
Het punt is dus alleen dat die lock niet voor niks is en ze dus niet door elkaar mogen lopen. Het lijkt mij dus dat een thread niks wordt (gedeeld geheugen)? Zou het forken van dit proces wel een optie zijn?