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

Comments

Popular posts from this blog

Validation for AZ phone numbers with RegEx in Java

Java necə işləyir, kod nədir ?

@Transactional annotation haqqinda. Cascade istifade olunmasi