Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Jestem świeżo po nauce podstaw JAVA i Swinga.
Czy ktoś może zarzucić jakiś pomysł na zbudowanie programu żeby sobie poćwiczyć i załapać dobrze podstawy zanim przejdę dalej?
Najbardziej zależy mi na nauce wątków żeby tego się dobrze nauczyć natomiast resztę mam w jakimś stopniu opanowanym bo mam doświadczenie w innym języku obiektowym.
Docelowo chciałbym napisać jakieś aplikacje na androida, może gry.
Nie no swinga to sie nauczyłem bo to było w książce zaraz po podstawach javy. W zasadzie przydatne do prostych aplikacji i nauki. Znacznie przyspiesza prace
Odnośnie wątków. Jak ja zaczynam uczyć się czegoś nowego, to zawsze od jakiś drobnych rzeczy.
Zacznij od Stworzenia sobie prostą apkę z dwom threadami, niech coś wypiszą na ekranie. Np
Potem ExecutorService - na pewno są jakieś przykłady, jak poszukasz.
Warto też zapoznać się z java.util.concurrent api
Szczerze mówiąc, ja na Twoim miejscu unikałbym współbieżności gdybym mógł. To dodaje bardzo dużo komplikacji dla w zasadzie dosyć nikłego zysku.
To powiedziawszy, wątki warto dodać wtedy, kiedy to ma sens - kiedy operacje blokują główny wątek (np. UI). W przypadku swinga, wymyśl jakąś operację która zajmie kilka sekund, taka która normalnie zawiesiłaby wątek - może to być np. przetwarzanie obrazów (zmniejszanie, skalowanie, obracanie, etc.). Zrób to najpierw bez wątku - powinieneś zobaczyć że Twój UI się "zawiesza". Potem dodaj wątki - i teraz zwiechy powinno nie być. Tylko też - ten problem również dałoby się rozwiązać bez wątków
Pobieranie plików z neta, każde ściąganie w osobnym wątku
Szczerze mówiąc, ja na Twoim miejscu unikałbym współbieżności gdybym mógł. To dodaje bardzo dużo komplikacji dla w zasadzie dosyć nikłego zysku.
W jaki sposób odpalenie jakiegoś tasku z Executora daje dużo kompilacji?
Gdyby to był tylko task, który ma się skończyć i nie ma być po nim śladu w aplikacji, to byłoby to względnie proste POD WARUNKIEM, że trzeba wziąć pod uwagę żeby task nie modyfikował żadnych zmiennych z których korzysta nadal program. Więc koplikacja płynie z tego żeby to wziąć pod uwagę.
Jednak często tak nie jest, w 99% przypadków wynik tego taska chcemy jakoś użyć w aplikacji, chociażby żeby powiedzieć czy się udał czy nie, zwrócić jakiś wynik - i to często podnosi komplikacje znacznie. To się wydaje proste z zewnątrz - ale każdy kogo znam, im więcej pracował z wspołbieżnością, tym prędzej poradzi: nie używaj, jeśli nie musisz.
Można sobie popróbować w prywatnych projektach lub coding-kata, żeby się nauczyć, ale nie wybierałbym tego do normalnej aplikacji chyba że nie miałbym innego wyjścia.
Zerknij na prezentację od Kevlin Henney, tutaj masz link - zobacz na moment 1:06:50.
Zazwyczaj ludzie piszą jakąś grę typu Reversi lub Go lub Warcaby.
Jak chcesz naprawdę głęboko zejść to spróbuj napisać edytor tekstu mając do dyspozycji jedynie wyświetlanie surowego tekstu (cursor, zaznaczanie, obsługa schowka - wyszstko piszesz sam). Tyle że to niewiele będzie miało z nauką Swinga.
Inny ciekawy projekt to zrobienie edytora mapy do gry lub edytora workflowów lub edytora grafów (i potem zapis takiego wyklikanego grafu do pliku). Ale to pracochłonne...
Pomysłów nie brakuje, zwłaszcza jak kto inny ma to pisać...
Usunąć wpis?
Tej operacji nie będzie można cofnąć.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.