Wielowątkowość to zdolność komputera lub programu do wykonywania pracy jednocześnie lub asynchronicznie poprzez wykorzystanie wielu współbieżnych strumieni wykonania (ogólnie nazywanych wątkami).
Zastanawiam się nad różnicą między deklarowaniem zmiennej jako volatilei zawsze uzyskiwaniem dostępu do zmiennej w synchronized(this)bloku w Javie? Zgodnie z tym artykułem http://www.javamex.com/tutorials/synchronization_volatile.shtml jest wiele do powiedzenia i istnieje wiele różnic, ale także pewne podobieństwa. Szczególnie interesuje mnie ta informacja: ... dostęp do zmiennej ulotnej nigdy nie ma możliwości zablokowania: …
Czy jest jakiś sposób, aby uzyskać listę wszystkich działających wątków w bieżącej maszynie JVM (w tym wątki, które nie zostały uruchomione przez moją klasę)? Czy możliwe jest również uzyskanie Threadi Classobiektów wszystkich wątków na liście? Chcę móc to zrobić za pomocą kodu.
Powiedzmy, że mamy te dwa Runnable: class R1 implements Runnable { public void run() { … } … } class R2 implements Runnable { public void run() { … } … } Jaka jest różnica między tym: public static void main() { R1 r1 = new R1(); R2 r2 = …
Próbuję użyć multiprocessing„s Pool.map()funkcję podzielenie prac jednocześnie. Gdy używam następującego kodu, działa dobrze: import multiprocessing def f(x): return x*x def go(): pool = multiprocessing.Pool(processes=4) print pool.map(f, range(10)) if __name__== '__main__' : go() Jednak gdy używam go w podejściu bardziej obiektowym, to nie działa. Wyświetlany komunikat o błędzie to: PicklingError: Can't …
Wierzę, że społeczność Erlang nie jest zazdrosna o Node.js, ponieważ natywnie blokuje operacje we / wy i ma sposoby na łatwe skalowanie wdrożeń na więcej niż jednym procesorze (coś, co nie jest nawet wbudowane w Node.js). Więcej informacji na http://journal.dedasys.com/2010/04/29/erlang-vs-node-js i Node.js lub Erlang Co z Haskellem? Czy Haskell może …
Czy istnieje „standardowy” sposób określania, że kontynuacja zadania powinna być uruchamiana w wątku, z którego zostało utworzone zadanie początkowe? Obecnie mam poniższy kod - działa, ale śledzenie dyspozytora i utworzenie drugiej Akcji wydaje się niepotrzebnym narzutem. dispatcher = Dispatcher.CurrentDispatcher; Task task = Task.Factory.StartNew(() => { DoLongRunningWork(); }); Task UITask= task.ContinueWith(() …
Próbuję użyć ThreadPoolExecutorklasy Javy do uruchamiania dużej liczby ciężkich zadań z ustaloną liczbą wątków. Każde z zadań ma wiele miejsc, w których może się nie powieść z powodu wyjątków. Podklasowałem ThreadPoolExecutori przesłoniłem afterExecutemetodę, która ma zapewnić nieprzechwycone wyjątki napotkane podczas uruchamiania zadania. Nie mogę jednak sprawić, by działało. Na przykład: …
Widząc różne pytania związane z blokowaniem i (prawie) zawsze znajdując „pętlę z powodu fałszywych pobudek” 1 Zastanawiam się, czy ktoś doświadczył takiego rodzaju pobudki (na przykład zakładając przyzwoite środowisko sprzętowe / programowe)? Wiem, że termin „fałszywy” oznacza brak wyraźnego powodu, ale jakie mogą być przyczyny takiego zdarzenia? ( 1 Uwaga: …
Jestem bardzo nowy w Pythonie i ogólnie programowaniu wielowątkowym. Zasadniczo mam skrypt, który skopiuje pliki do innej lokalizacji. Chciałbym, aby został on umieszczony w innym wątku, dzięki czemu mogę wysyłać dane ....wskazujące, że skrypt nadal działa. Problem, który mam, polega na tym, że jeśli nie można skopiować plików, wygeneruje wyjątek. …
Mam kilka metod, które powinny wywoływać System.exit()określone dane wejściowe. Niestety testowanie tych przypadków powoduje zakończenie działania JUnit! Umieszczanie wywołań metod w nowym wątku nie wydaje się pomocne, ponieważ System.exit()kończy JVM, a nie tylko bieżący wątek. Czy istnieją jakieś wspólne wzorce radzenia sobie z tym? Na przykład, czy mogę zastąpić kod …
Studiowałem wątki w pythonie i natknąłem się join(). Autor powiedział, że jeśli wątek jest w trybie demona, muszę go użyć join(), aby wątek mógł zakończyć się przed zakończeniem głównego wątku. ale widziałem go również używającego, t.join()chociaż ttak nie byłodaemon przykładowy kod to import threading import time import logging logging.basicConfig(level=logging.DEBUG, format='(%(threadName)-10s) …
Jaki jest najprostszy sposób oczekiwania na ExecutorServicezakończenie wszystkich zadań ? Moje zadanie jest głównie obliczeniowe, więc chcę po prostu uruchomić dużą liczbę zadań - po jednym na każdym rdzeniu. W tej chwili moja konfiguracja wygląda następująco: ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable singleTable : uniquePhrases) { es.execute(new ComputeDTask(singleTable)); } try{ …
Jak wybrać pomiędzy przesłaniem lub wykonaniem przez ExecutorService , jeśli zwracana wartość nie jest moim przedmiotem? Jeśli przetestuję oba, nie zauważyłem żadnych różnic między nimi oprócz zwróconej wartości. ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.execute(new Task()); ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.submit(new Task());
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.