Java Niti i Sinkronizacija

IrreproachableDaisy avatar
IrreproachableDaisy
·
·
Download

Start Quiz

Study Flashcards

24 Questions

Šta se događa kada se dogodi iznimka u programu?

Program će se prekinuti

Koje je glavno značenje finally bloka?

Oslobađanje resursa

Što je AutoCloseable sučelje?

Sučelje za oslobađanje resursa

Koje je stanje niti kada čeka na drugu nit da završi sa izvođenjem?

Waiting

Šta se događa kada nit izvrši zadatak ili nastane greška?

Nit prelazi u stanje Terminated

Koje je glavno značenje try-with-resource bloka?

Oslobađanje resursa

Koje je glavno značenje iznimke?

Sve navedeno

Koje je glavno značenje razlike između implementacije niti korištenjem Thread klase i Runnable sučelja?

Način implementacije niti

Koja je svrha implementacije Runnable sučelja?

Da se definiše metodu run() u koju se treba implementirati kod koji želimo da nit izvrši

Koji je metod klase Thread koji čeka da se nit završi izvršavanje?

join()

Šta se postiže sinhronizacijom niti?

Ekskluzivno pravo pristupa objektu

Koji je layout manager u Java Swingu?

Odgovoran za raspored komponenti unutar kontejnera

Koliko se segmenta programa kod-a potrebuju za obradu događaja u grafčkom sučelju?

3

Šta je anonimna klasa u Javi?

Klasa koja se definiše i instancira bez eksplicitnog imena klase

Koji je ograničenje anonimne klase?

Nije moguće eksplicitno definisati imena klase

Koji je spremnik najviše razine u Java Swingu?

JFrame

Šta znači akronim WORA?

Write Once, Run Anywhere

Šta je JRE?

Java Runtime Environment

Koji je glavni razliku između strukturnog i objektno orijentiranog programiranja?

Strukturno programiranje koristi funkcije, a objektno orijentirano koristi klase

Koja je svrha JDK-a?

Razvoj programa i donošenje implementacije prevodioca i drugih pomoćnih alata

Koji je tip komentara koji prevodioc ignorira sve što je između //?

single line

Koja je razlika između primitivnih i referentnih tipova?

Primitivni tipovi su tipovi koji se koriste za čuvanje cjelobrojnih vrijednosti, a referentni tipovi su tipovi koji se koriste za čuvanje objekata

Šta se događa u slučaju automatske konverzije tipova podataka?

Tipovi se mijenjaju automatski

Šta je eksplicitna konverzija tipova podataka?

Konverzija tipova podataka između kojih se ne radi automatski

Study Notes

Niti i Sinkronizacija

  • Runnable sučelje definira metodu run() koju treba implementirati kod koji želimo izvršiti u niti
  • Klasa Thread sama po sebi implementira Runnable sučelje

Metode klase Thread

  • start() - pokreće nit
  • sleep() - pauzira nit na određeno vreme
  • join() - čeka da se nit završi sa izvršavanjem

Sinkronizacija

  • U situacijama kada više niti dijeli isti objekt, treba se posebno posvetiti načinu na koji se obrađuju podaci
  • Problem se rješava dodjelom ekskluzivnog prava pristupa samo jednoj niti u isto vrijeme

Sučelja

  • Tri načina izrade sučelja: implementacija sučelja, nasljeđivanje klase, anonimna klasa
  • Hijerarhija spremnika za izradu sučelja:
    • JFrame - spremnik najviše razine, definira osnovni prozor aplikacije
    • JPanel - spremnik srednje razine, čija je jedina uloga pojednostavljenje pozicioniranja elementarnih komponenti

Layout Manager

  • Omogućava dinamičko pozicioniranje komponenti na osnovu određenih pravila ili prilagođavanje veličine komponenti u skladu sa promenama veličine kontejnera
  • Primjeri koristeći minimalno tri različita layout manager-a

Obrada Događaja

  • Tri segmenta programskog koda potrebna za obradu događaja u grafičkom sučelju:
    • Detektovanje događaja
    • Procesiranje događaja
    • Odgovor na događaj
  • Tri vrste događaja:
    • Događaj koji se događa kada se klikne na dugme
    • Događaj koji se događa kada se promeni tekst u polju za unos
    • Događaj koji se događa kada se izaberu element u liste

Anonimne Klase

  • Anonimna klasa je klasa koja se definiše i istovremeno instancira bez eksplicitnog davanja imena klase
  • Koriste se kada je potrebno definisati implementaciju interfejsa ili nasljeđivanje neke klase, ali nije potrebno eksplicitno definisati posebnu klasu za to

Exception Handling

  • Error klasa i njezine podklase predstavljaju iznimke koje se mogu ispraviti u programu
  • Exception klasa ili njezine podklase predstavljaju iznimke čiji se uzorci mogu otkloniti u programu
  • Finally blok se koristi za oslobađanje resursa nakon hvatanja iznimke

AutoCloseable Sučelje

  • Alternativa za finally blok
  • Omogućava zauzimanje jednog ili više resursa koji će se koristiti unutar try bloka te se nakon izvršavanja automatski zatvoriti

Stanja Niti

  • New - nova nit započinje životni vijek
  • Runnable - stanje nakon pokretanja niti
  • Waiting - stanje u kojoj nit čeka neku drugu nit da završi sa izvođenjem
  • Timed waiting - nit iz runnable stanja može prijeći u timed waiting stanje na određeni interval vremena
  • Blocked - nit iz stanja runnable prelazi u stanje blocked kada pokušava izvršiti zadatak koji se ne može izvršiti odmah
  • Terminated - nit prelazi u terminated stanje nakon što uspješno izvrši zadatak ili u slučaju nastanka greške

Razlike između implementacije niti korištenjem Thread klase i Runnable sučelja

  • Implementacija niti korištenjem Thread klase:
    • Nit se izvršava istovremeno sa glavnim programom
    • Nit se koristi za izvršavanje dugotrajnih zadataka
  • Implementacija niti korištenjem Runnable sučelja:
    • Nit se izvršava u zasebnoj niti
    • Nit se koristi za izvršavanje kratkotrajnih zadataka

Pitanja i Odgovori

  • Pojam WORA (Write Once, Run Anywhere) znači da programer može razviti program u jednom sustavu i očekivati da radi na bilo koljem drugom sustavu koji ima Javu
  • Razlike između JRE i JDK:
    • JRE - (Java Virtual Environment) predstavlja podskup Java platforme koji korisnicima nudi mogučnost pokretanja prevedenih programa
    • JDK - (Software Development Kit) predstavlja nadskup opisane platforme koji u sebi uključuje JRE i donosi još implementaciju prevodioca i drugih pomoćnih alata
  • Razlike između strukturnog i objektno orijentiranog programiranja:
    • Strukturno programiranje:
      • Programi se dijele u manje programe ili funkcije
      • Imamo strogu hijerarhijsku strukturu
      • Odvajamo definicije od podataka
    • Objektno orijentirano programiranje:
      • Koriste se objekti koji sadrže podatke u obliku atributa i kod u obliku procedura koje zovemo metode
      • Koriste se klase koje opisuju grupe objekata sa sličnim svojstvima

Ovaj kviz pokriva osnove rada sa nitima u Java-u, uključujući implementaciju metode run(), korištenje metoda start(), sleep() i join() kao i sinkronizaciju niti.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free

More Quizzes Like This

Java Threads Quiz
5 questions

Java Threads Quiz

SlickCarnelian3616 avatar
SlickCarnelian3616
Multi-threading in Java Networking
16 questions
Java Thread Instantiation and Usage
18 questions
Thread Synchronization in Java
24 questions
Use Quizgecko on...
Browser
Browser