Multithread



  • hallo
    hab mal wieder eine frage ich programmier mir einen portscanner, der auch gut funktioniert nur der ist elend langsam weil die schleife jeden port einzelnt scannt jetzt meine frage wie könnt ich das mit threads machen also (z.B 10 ports gleichzeitg scannen) wie ich das auf teilen kann auf die einzelen threads



  • _beginthread



  • nur mal so nebenbei :

    was sollte es bringen ? "echtes gleichzeitig" gibts bei windows nicht, da im normalfall nur eine cpu vorhanden - mit anderen worten, wenn du 100 ports scannen willst und verteilst jeweils 10 auf einen thread, wird es genau so lange dauern, da die threads NIE gleichzeitig laufen sondern immer eine gewisse cpu-time zugeordnet bekommen !

    um den vorteil von multithreading zu nutzen, müsstes du dir schon einige gezielte mechanismen überlegen, wie das "schlafenlegen" und "aufwecken" einzelner threads durch bestimmte network-events. dann kann man sicherlich einen timing-vorteil erreichen. aber einfach mal eben umverteilen der funktionsaufrufe .... ?

    rocknix ///

    [ Dieser Beitrag wurde am 30.01.2003 um 11:18 Uhr von RockNix editiert. ]



  • Original erstellt von RockNix:
    **nur mal so nebenbei :

    was sollte es bringen ? "echtes gleichzeitig" gibts bei windows nicht, da im normalfall nur eine cpu vorhanden - mit anderen worten, wenn du 100 ports scannen willst und verteilst jeweils 10 auf einen thread, wird es genau so lange dauern, da die threads NIE gleichzeitig laufen sondern immer eine gewisse cpu-time zugeordnet bekommen !
    **

    Natürlich bringt ihm in diesem Fall das Multithreading was. Beim Scannen des Ports, der geschlossen ist geht eine ganze Sekunde drauf. Da es sich hier aber um einen Timeout handelt kann er davon ruhig 10 "gleichzeitig" laufen lassen. Viel CPU-kraft kostet das ja nicht...



  • ja das war ja meine frage ich ja wissen wie man das multithread macht und wie man die ports dann auf die verschiedenen threads aufteilt


Anmelden zum Antworten