Sobes.tech
Junior — Middle

რა ძირითადი მეთოდები გამოიყენება Object კლასში ნაკადებთან და სინქრონიზაციასთან მუშაობისთვის?

sobes.tech AI

პასუხი AI-სგან

Java-ში, Object კლასი უზრუნველყოფს რამდენიმე მეთოდს, რომლებიც ხშირად გამოიყენება თრიდებთან და სინქრონიზაციასთან მუშაობისას:

  • wait() — აძლევს მიმდინარე თრიდს საშუალებას დაელოდოს, სანამ სხვა თრიდი არ გამოიძახებს notify() ან notifyAll() იმავე ობიექტზე. გამოიყენება გარკვეული მდგომარეობის მოლოდინის ორგანიზებისთვის.

  • notify() — იღვიძებს ერთ თრიდს, რომელიც ელოდება ამ ობიექტზე.

  • notifyAll() — იღვიძებს ყველა თრიდს, რომელიც ელოდება ამ ობიექტზე.

ამ მეთოდებს უნდა იძახოთ სინქრონიზებულ ბლოკში ან მეთოდში, წინააღმდეგ შემთხვევაში გამოიწვევს IllegalMonitorStateException-ს.

გამოყენების მაგალითი:

synchronized (sharedObject) {
    while (!condition) {
        sharedObject.wait();
    }
    // მოქმედებები პირობის შესრულების შემდეგ
}

// სხვა თრიდში
synchronized (sharedObject) {
    // მდგომარეობის ცვლილება
    sharedObject.notify();
}