Java #57: egzekutory – pule wątków

java executors

Egzekutory W poprzednich lekcjach wątki były odpalane za pomocą odpalania za każdym razem osobnej instancji. Nie jest to jednak bardzo wygodny sposób. Wyobraź sobie, że musisz ten sam wątek odpalić tysiąc razy! Wymagałoby to za każdym razem tworzenia nowego obiektu i wywoływania na nim metody start. Jest jednak dużo wygodniejszy sposób, mianowicie skorzystanie z puli … Dowiedz się więcej

Podstawy programowania – słowniczek

programming basics

Zapraszam Cię do mojego mini słowniczka z pojęć informatycznych. Jeśli interesują Cię podstawy programowania, to z pewnością znajdziesz tu dużo interesującej wiedzy! Pamięć – układ zer i jedynek. Każde miejsce zapisać można wartością 0 lub 1 (bit). Bity poukładane są w bajty. Każdy bajt ma swój adres pamięci. Po adresach procesor odwołuje się do komórek … Dowiedz się więcej

Java #56: obiekty niezmienne (immutable)

java immutable

Obiekty niezmienne Przetwarzanie wielowątkowe niesie ze sobą jeden podstawowy problem. Praca wielu wątków na jednej klasie przechowującej stan (np. zwykła klasa typu POJO), wymaga odpowiedniej synchronizacji. Innym sposobem jest wymuszenie na klasie, która ma przechowywać dane, aby była odporna na zmiany. Taka klasa często nosi miano klasy niemutowalnej (ang. immutable), a jej instancje to obiekty … Dowiedz się więcej

Java #55: zmienne atomowe i zamki

java atomic variables locks

Poza możliwością synchronizacji wątków, używając słowa sychronized, Java udostępnia wiele dedykowanych rozwiązań związanych z pracą w środowisku wielowątkowym. Większość z nich znajdziesz w pakiecie java.util.concurrent. W tym wpisie omówię dwa z nich: zmienne atomowe (ang. atomic variable) oraz zamki (ang. locks). Zmienne atomowe Postaram się zoptymalizować powyższy kod. Jak wiesz, synchronized zadziała jedynie na obiektach, … Dowiedz się więcej

Java #54: synchronizacja wątków (synchronized)

java synchronized

Praca w wielowątkowym środowisku stwarza wiele możliwości, ale też problemów. Jednym z nim jest synchronizacja wątków pracujących na tych samych zasobach. Częstym problemem, pojawiającym się w programowaniu współbieżnym, jest tzw. wyścig (ang. race condition). Pojawia się on wtedy, gdy wiele wątków wykonuje swoją pracę na tych samej sekcji krytycznej bez synchronizacji. Świetnym przykładem takiego zachowania … Dowiedz się więcej

Java #53: wątki – przetwarzanie wielowątkowe

java threads

Wątki w Javie Jednym z powodów, dla którego język Java stał tak popularny w latach 90-tych była prostota z jaką programista mógł zaprojektować środowisko wielowątkowe. W tamtym okresie nie było zbyt wiele technologii, które mogłyby się liczyć z językiem stworzonym przez firmę Sun Microsystems. Musisz wiedzieć, że początkowo Java była językiem dedykowanym jako wsparcie dla … Dowiedz się więcej

Baldur’s Gate 1: Enhanced Edition (rozszerzona edycja)

wrota baldura

Marzeniem każdego mężczyzny w dzieciństwie jest zostać żołnierzem, strażakiem lub piłkarzem. Co z tego wyszło później pokazuje życie, ale zawsze pozostaje nam pewna alternatywa w postaci gier komputerowych. Gry RPG (Role Playing Game) dają nam możliwość przeniesienia się do fantastycznych krain, w których to jako dzielni bohaterowie będziemy ratować świat, podbijać serca płci przeciwnej i … Dowiedz się więcej

Prometeusz – recenzja filmu

prometeusz 2012

Prometeusz, film Ridleya Scotta, twórcy takich dzieł jak Gladiator, Łowca Androidów czy klasyczny Obcy (ósmy pasażer Nostromo),  to kolejne dzieło science-fiction w dorobku brytyjskiego reżysera. Takie wydarzenie nie mogło przejść bez echa. Bowiem prawie wszystkie filmy Scotta odbijają głębokie piętno na swoich czasach. Najczęściej masakrowane przez krytykę i znienawidzone przez publiczność, po latach stają się … Dowiedz się więcej