Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
January 19, 2022 09:48 am GMT

Java Thread Snf

Thread yaps, ayn anda ve birbirini beklemeden birden ok iin gerekleebildii yapdr.

Thread olutururken, java'da thread snf extend edilebilir ya da runnable implementasyonu tercih edilebilir.

Java'da sadece bir snf extend edilebildii ve daha fazla esneklik salamak iin runnable implementasyonu daha avantajldr.

nemli tanmlar
Runnable: Thread tanmlarnn ne yapmas gerektiini aklayan bir arayzdr.
Run: Ana thread bekleme yaparak, dier thread'ler alr.
Start: Ana thread bekleme yapmadan, dier threadler ile birlikte alr.
Join: Mevcut thread iini bitirmeden, dier thread iine balayamaz.,
Synchronized: Method'a ulamak isteyen threadler method'a sra ile girerler ve bir thread method'u bitirmeden dier thread balayamaz. (Kilitleme mekanizmas vardr. zetle, thread'ler birbirlerinin stne basmazlar)

Not: Thread.join(), i paracnn tamamen bitmesini beklerken, iki i paracnn ayn anda ayn kod parasn yrtmesini nlemek iin synchronized bir blok kullanlabilir.

rnek Uygulama

package com.app.thread;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main{    public static void main(String[] args){        List<Integer> v = new ArrayList<>(Arrays.asList(1, 2, 3,4));        ThreadExample thread1 = new ThreadExample(v);        ThreadExample thread2 = new ThreadExample(v);        try {            thread1.start();            thread1.join(); // thread2 alabilmek iin bekleyecektir.            thread2.start();            thread2.join(); // main thread alabilmek iin bekleyecektir.           // start yerine run kullanlrsa,            // main thread 2 numaral thread'i beklemeyecek            // bylece thread2.join() satrna ihtiya duyulmayacaktr.         }catch (InterruptedException e) {            System.out.println(e.getMessage());        }        Integer totalSum = thread1.getSum() + thread2.getSum();        System.out.println(Thread.currentThread().getName() + " => The sum: " + totalSum);    }}
package com.app.thread;import java.util.List;public class ThreadExample extends Thread implements Runnable{    private List<Integer> v;    public Integer sum = 0;    public ThreadExample(List<Integer> p) {        this.v = p;    }    @Override    public void run() {        System.out.println(Thread.currentThread().getName() + " started..");        synchronized(this) {            for (Integer i : v) {                sum += i;            }            System.out.println(Thread.currentThread().getName() + " => The sum: " + totalSum);        }    }    public Integer getSum() {        return sum;    }}

Program kts
Image description


Original Link: https://dev.to/ozgur/java-thread-sinifi-1od0

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To