Wszystko
Wszystkie
Archiwum
Klasa A używa Lock() do zebrania danych, a Klasa B do analizy tych danych (kopiowanie do lokalnych zmiennych).
Jak nie niszcząc zasad obiektowości przekazać Lock() do obu klas?
Chyba, że mogę w obu klasach stworzyć zmienną self.lock = threading.Lock() i będzie to działać jak do tej pory? (w co wątpię)
#python #programowanie #wielowatkowosc
4
Jak przyspieszyć z Intel Parallel STL oraz algorytmami równoległymi z C++17
W artykule przedstawiam bibliotekę Intel Parallel STL, która implementuje algorytmy równoległe z C++17. Biblioteka będzie stanowić podstawę dla przyszłych implementacji dla bibliotek standardowych dla GCC oraz Clang'a.
z- Dodaj Komentarz
- #
- #
- #
- #
Mirki, zna się ktoś z Was na interpretacji wyników analizy heapdumpa? Miałem wyciek pamięci i zrobiłem sobie analizę za pomocą eclipse analyzera, ale nie do końca ogarniam jak to interpretować
- 1
- 3
http://codingways.blogspot.de/2012/08/implementing-thread-safe-queue-in-c11.html
Mam dwa pytania.
1. Po co używać tutaj
std::shared_ptr
Jeśli będę chciał użyć shared_ptr
to sobie dam za T
więc gość chciał za dobrze? Dobrze myślę?2. Po co strażnik (
std::lock_guard lock(mMut);
) w Empty
? I tak po zwróceniu true/false nie wiemy czy kolejka jest pusta lub pełna. Bo locka już nie ma. I w kolejnej operacji wcale nie musi być już pusta. #cpp11 #cpp #programowanie #wielowatkowosc
- 4
- 14
Mam dość czasochłonne zadanie, które musi być stale przeliczane i powiedzmy, że w jednej iteracji musi ono być wykonane 1000 razy. Na jedną iterację schodzi na pojedynczym wątku około 6-10 minut. Chcę każde to obliczenie wykonać na nowym wątku żeby trochę szybciej to zeszło. Doczytałem na SO o ExecutorService.
Ktoś nawet podrzucił kod:
ExecutorService es = Executors.newCachedThreadPool();
for(int i=0;i<5;i++)
es.execute(new Runnable() { /* your
- 1
Fajne, sprytne. Dzięki!
- 2
Czy ktoś wie o jaką książkę może chodzić?
#java #programowanie #wielowatkowosc #pytaniedoeksperta #pytajo
Mam na myśli taką sytuację w uproszczonym modelu.
Mam pętlę która wykonuje operacje na tablicy 3D metodą iteracyjną rozbitą na 3 zagnieżdżone pętle for:
for(int x = 0; y
{
for(int y= 0; y
for(z = 0; z
// Do stuff
}
Zamieniam ją na wiele wątków ten sposób:
std::vector loadingThreads;
for(int y = 0; y
{
loadingThreads.push_back(std::thread(&KlasaBazowa::NowaFunkcja, this, paramA , y));
I taki offtopic: polecam
emplace_back
zamist
push_back
, który przekaże argumenty od razu do konstruktora, dużo czytelniejsze, a w dodatku nie ma zbędnego move constructora, który by się przy
emplace_back
wykonał.
I należy też pamiętać, że
std::thread
nie jest kopiowalny i że jego konstruktor bierze argumenty przez kopię, a referencje musisz przkezywać przez reference wrappera (
std::ref
).
To jest stała, w tej wersji zawsze wynosi 16
więc costam % 16 <= 15, na pewno się nie powtarza?
A jest możliwe, że wątki się gubią jeśli te operacje są wykonywane dla wielu róznych chunków jednocześnie?
wut?
Jest możliwe, że tworzy się za dużo wątków i stąd błędy?
Watków nie powinno być za dużo, masz coś takiego jak
std::thread::hardware_concurency
, który oznacza liczbę wątków możliwych do realizacji równocześnie, ale
- 1
Mam 4 wątki które szukają jakiejś wartości, gdy jeden z nich znajdzie reszta powinna się zatrzymać, kombinuje coś z globalnym boolem który by był sprawdzany ale nie idzie. Jakiś pomysł/przykład?
- 1
- 1
Probem: Dwóch producentów, dwóch konsumetów, bufor fifo, liczby losowe. Konsumenci identyczni (jedna funkcja), jeden producent pisze kiedy chce (pod warunkiem, że bufor nie jest pełny), drugi może pisać tylko jeżeli suma liczb w buforze spełnia pewien warunek.
Rozwiązałem bez uwzględniania warunku z sumą.
Na pewno mam semafory:
mutex(1); // broni dostępu do bufora
production(BUFFER_CAPACITY); // bo produkować można
- 2
Pomimo iż ogólnie ja prawak, to właśnie sobie uświadomiłem, że niektóre pomysły #korwin'a to są o kant dupy potłuc. Tak jak tutaj: mamy króla programistę i państwo, w którym jedni lewacy chcą tylko żyć i żreć, a drugie #trybson'y interesuje tylko, żeby gdzieś coś wepchnąć if you know what I mean. I jedni i drudzy mają w dupie innych, starają się tylko zaspokoić własne potrzeby choćby mieli kogoś zagłodzić. Mi
- 1
#programowanie #csharp #wielowatkowosc
a teraz ?
15
Gynvael's Code: Multithreading #1
Wstępny odcinek do multithreadingu, bardziej teoretyczny / popularnonaukowy niż techniczny.
z- Dodaj Komentarz
- #
- #
- #
- #
- #
- #
3
Starsze aplikacje skorzystają z wielu rdzeni CPU?
Inżynierowie firmy Intel opracowali technologię umożliwiającą starszemu oprogramowaniu wykorzystanie możliwości procesorów wielordzeniowych.
z- Dodaj Komentarz
- #
- #
- #
- #
7
WebKit2 dodaje obsługę wyświetlania stron z użyciem kilku procesów
WebKit2 to projekt rozwijany przez Apple, którego głównym założeniem jest rozdzielenie renderowania strony na kilka oddzielnych procesów, np. dla JavaScript, HTML itd.
z- Dodaj Komentarz
- #
- #
- #
- #
- #
- #
- #
- #
- #
7
Skrypt umożliwiający uzyskanie wielowątkowości w powłoce
Uruchamiasz w terminalu wiele programów na raz a masz więcej niż jeden procesor? Ten skrypt pomoże w uruchamianiu programów na kilku rdzeniach.
z- 2
- #
- #
- #
- #
- #
8
GCC automatycznie zoptymalizuje kod pod kątem wielowątkowości
W niedługim czasie zbiór wolnych kompilatorów, znany pod nazwą GCC, zyska możliwość automatycznej optymalizacji kodu, by ten wykonywał się wielowątkowo i wykorzystywał lepiej procesory wielordzeniowe.
z- Dodaj Komentarz
- #
- #
- #
- #
- #
- #
- #