MonoMisiek Temat założony przez niniejszego użytkownika |
Funkcja jako dodatkowy wątek » 2015-03-03 19:44:39 |
|
Monika90 |
» 2015-03-03 20:24:40 Użyj klasy thread z biblioteki standardowej C++ |
|
MonoMisiek Temat założony przez niniejszego użytkownika |
» 2015-03-03 21:14:16 Nie mam klasy thread w bibliotece standardowej. Używam VS2010 |
|
Monika90 |
» 2015-03-03 21:18:39 To w takim razie boost::thread z biblioteki Boost
|
|
pekfos |
» 2015-03-03 23:13:32 u mnie w programie sprawa się nieco komplikuje, ponieważ do funkcji przekazuję argument... Wygląda to tak: funkcja(&liczba); |
W czym problem? Przecież możesz przekazać jeden argument do wątku przez _beginthread() i nawet jest to wskaźnik. |
|
MonoMisiek Temat założony przez niniejszego użytkownika |
» 2015-03-04 00:13:58 @pekfos Ale jak to zrobić? Jakbym nie robił, to zawsze sypie multum blędów...
@Monika90 zainstalowałem tego boosta i jak odpalić funkcję? wpisuję boost::thread funkcja(&liczba); wywala masę błędów w thread.hpp...
|
|
DejaVu |
» 2015-03-04 01:13:10 |
|
MonoMisiek Temat założony przez niniejszego użytkownika |
» 2015-03-04 17:55:32 No dobra zrobiłem boostem (vs10 nie ma c++11..., w tych pozostałych funkcje są void...)
Takie mam pytanie techniczne, bo nie wiem czy takie rzeczy w ten sposób się robi. (Aha, zależy mi na szybkości programu i na małym obciążeniu procesora)
W wielkim uproszczeniu: program generuje tablicę, szuka wektor między elementem A i B. (generowanie tablicy, jest to czynność najszybsza)
Bez wątków, robiłem po kolei: (generowałem tablice, szukam A, szukam B, kasuje tablicę) i tak w kółko = +-220ms / 3% procesora
Na wątkach zrobiłem ich 3: 1- while(true){ generuje tablice, odpala wątek szukam A, odpala wątek szukam B, join A, join B, kasowanie tablicy}
2- szuka A 3- szuka B
W mainie wołam 1 raz wątek 1 Zajmuje to 27% procesora / 130ms
Dobrze to robię? Czy takie rzeczy się robi w inny sposób. I co można jeszcze zrobić, żeby przyśpieszyć?
PS. sprawdziłem oddzielnie co ile trwa: generowanie tablicy 50ms kasowanie tablicy 600us szukaj A 82ms szukaj B 60ms
|
|
« 1 » 2 |