Wątki, wąteczki.

0

Witam, mam małe zadanie do sprawdzenia.

Zaimplementuj metody:
public static void runThogether(Runnable... tasks)
public static void runInOrder(Runnable... tasks)
Pierwsza metoda powinna uruchomić każde zadanie w oddzielnym wątku i zakończyć działanie. Druga metoda powinna uruchomić wszystkie zadania w bieżącym wątku i zakończyć działanie po zakończeniu ostatniego z nich.

public static void runTogether(Runnable... tasks) {

     for(Runnable n : tasks) {
         Thread thread = new Thread(n);
         thread.start();
     }
 }

 public static void runInOrder(Runnable... tasks) {

     for(Runnable n: tasks) 
         n.run();
 }

Jest okej, czy coś "pokiełbasiłem" ?

1

Wydaje się ok, chociaż ja bym w 1 przypadku użył ExecutorService :) I z całkiem dobrej książki korzystasz :)

0

Okej dzięki wielkie :3 Nie mam pojęcia JESZCZE co to jest ExecutorService :D
Swoją drogą często mam takie dylematy, czy na pewno dobrze zrozumiałem polecenie, czy na pewno wszystko dobrze wykonałem itp. Myślicie, że dobrym pomysłem jest zakładanie co kilka dni nowego tematu, czy może założyć jeden i co kilka dni wrzucać do niego nowe posty z nowymi "dylematami" ? Nie chciałbym zaśmiecać forum :<

0

W tej książce na początku działu o wielowątkowości jest o Executorach :P

0

A to ja dopiero na interfejsach jestem :D Miałem tylko wzmiankę o wątkach i akurat miałem ćwiczenie z tego :D

1

Rozwiązanie masz zgodne z treścią zadania, chociaż mi bardziej by pasowało jeszcze dodać join na końcu w runTogether - gdyby to nie było czysto dydaktyczne zadanie a np. praktyczny kod.
A jeśli jednak obie wersje miały by działać w tle bez czekania na zakończenie to użyłbym też ExecutorService.
Ta wersja w pierwszym poście jest za to przynajmniej bardzo czytelnie napisana.

Do wątków polecam:
"Java Threads and The Concurrency Utilities" - Friesen, Apress (zawiera ćwiczenia, zaleta - krótko i na temat)
Ew. "Java 7 Concurrency Cookbook" - Gonzalez, Packt (nie czytałem, ale wygląda na praktyczną)

0

@vpiotr: w tej książce (z której ma ćwiczenia) to był dopiero początek, (rozdział o interfejsach, 3). Później będzie miał opisane lepsze mechanizmy w dziale o wielowątkowości (kolekcje, locki, executory etc), ale to kilka rozdziałów później ;)
Najpierw podstawy ;]
Zresztą tutaj masz spis treści : http://helion.pl/ksiazki/java-8-przewodnik-doswiadczonego-programisty-cay-s-horstmann,jav8pd.htm

1 użytkowników online, w tym zalogowanych: 0, gości: 1