Threads
Threadlarla ishlemek uchun evvelce Thread classini extend etmeliyik.
Daha sonra run() metodu Override olunmalidir.
Oz classimizin obyektini yaratdiqdan sonra,
MyThread m = new MyThread();
m.start();
deyib threadi ishe salmaq olur.
strart metodu arxada dolayi yolla run metodunu ishe salir.
extends Thread ve implements Runnable
Extends zamani artiq extends qabiliyyetini itiririk.
class Runnable da implements etdikden sonra start() metodu bu interface ichinde olmadigina gore error olacaq.
Buna gore asagidaki shekilde kod yazilmalidir.
Thread mt = new Thread(new MyThread());
constructora oz obyektimizi gonderirik.
Race Condition
Eger butun threadlar eyni menbeye muraciet edirse bu zaman RaceCondition yaranir. Bu problemin qarshisini almaq uchun synchronized istifade etmek lazimdir.
Volatile
Thread lar yaranan zaman proyektin cari hali kopyalanir. Yeni Threadlar her biri ayri yaddash sahesine muraciet edir. synchronized ne qeder bu yaddashlari refresh etse de , bezen etmeye de biler. Bunu 100% temin etmek uchun volatile keyword istifade edilir.
monitor, lock, synchronized(this) her hansi bir blockun {} lock olunmasi
deadlock
ExecutorService, Threadlarla ishlemek uchun Java API
monitor, lock, synchronized(this) her hansi bir blockun {} lock olunmasi
deadlock
ExecutorService, Threadlarla ishlemek uchun Java API
Comments
Post a Comment