uz
Feedback
Easy Java

Easy Java

Kanalga Telegram’da oβ€˜tish

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ полСзности для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². БотрудничСство: @heywan_n1 Π¦Π΅Π½Ρ‹: @heywan_media Π Π΅ΠΊΠ»Π°ΠΌΠ° Π½Π° Π±ΠΈΡ€ΠΆΠ΅: https://telega.in/c/+r8kkGSypBY84MmIy

Ko'proq ko'rsatish
5 037
Obunachilar
-224 soatlar
-187 kunlar
-7430 kunlar
Postlar arxiv
πŸ‘©β€πŸ’» Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ CountDownLatch Π² Java ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½? CountDownLatch β€” это синхронизатор ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° java.util.concurrent, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ нСскольким ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ свои Π·Π°Π΄Π°Ρ‡ΠΈ.
Он инициализируСтся счётчиком, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² countDown() ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π° 1. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ счётчик достигаСт нуля β€” всС ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
β€’ Π£Π΄ΠΎΠ±Π΅Π½ для оТидания Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ старт ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€’ ΠŸΡ€ΠΎΡΡ‚ Π² использовании ΠΈ потокобСзопасСн ⚑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
import java.util.concurrent.CountDownLatch;

public class Main {
    public static void main(String[] args) throws InterruptedException {
        CountDownLatch latch = new CountDownLatch(3);

        Runnable worker = () -> {
            System.out.println(Thread.currentThread().getName() + " Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ» Ρ€Π°Π±ΠΎΡ‚Ρƒ");
            latch.countDown();
        };

        new Thread(worker, "ΠŸΠΎΡ‚ΠΎΠΊ 1").start();
        new Thread(worker, "ΠŸΠΎΡ‚ΠΎΠΊ 2").start();
        new Thread(worker, "ΠŸΠΎΡ‚ΠΎΠΊ 3").start();

        latch.await(); // ΠΆΠ΄Ρ‘ΠΌ, ΠΏΠΎΠΊΠ° счётчик Π½Π΅ станСт 0
        System.out.println("ВсС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ");
    }
}
πŸ‘€ CountDownLatch особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ для синхронизации Π² тСстах, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… вычислСниях ΠΈ Π² случаях, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ стартом основной Π»ΠΎΠ³ΠΈΠΊΠΈ.
➑️ Easy Java | #ВСория

ΠžΡ‚Π²Π΅Ρ‚:
Anonymous voting

➑️ Easy Java | #Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°
➑️ Easy Java | #Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°

❓ Вопрос с собСса Π§Π΅ΠΌ ReentrantLock отличаСтся ΠΎΡ‚ synchronized Π² Java? ΠŸΡ€ΠΈΠΌΠ΅Ρ€πŸ”½
import java.util.concurrent.locks.ReentrantLock;

public class Main {
    private static final ReentrantLock lock = new ReentrantLock();
    private static int counter = 0;

    public static void main(String[] args) {
        Runnable task = () -> {
            lock.lock();
            try {
                counter++;
            } finally {
                lock.unlock();
            }
        };

        new Thread(task).start();
        new Thread(task).start();
    }
}
ΠžΡ‚Π²Π΅Ρ‚πŸ”½
ReentrantLock β€” это класс ΠΈΠ· java.util.concurrent.locks, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт большС возмоТностСй, Ρ‡Π΅ΠΌ synchronized: β€” МоТно ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ с Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠΌ (tryLock) β€” МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ с нСсколькими условиями (Condition) β€” МоТно Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈ освобоТдСния πŸ“Œ Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ synchronized, ReentrantLock Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного Π²Ρ‹Π·ΠΎΠ²Π° lock() ΠΈ unlock(), Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ дисциплины.
➑️ Easy Java | #БобСс

πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨ ΠšΠ°Π½Π°Π»Ρ‹ с Junior IT вакансиями ΠΈ стаТировками ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ ΠΈ Π·Π°Π±ΠΈΡ€Π°ΠΉ свой ΠΎΡ„Ρ„Π΅Ρ€ 🀘 1. Π‘Ρ‚Π°ΠΆΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ваканс
πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨πŸ‘¨ ΠšΠ°Π½Π°Π»Ρ‹ с Junior IT вакансиями ΠΈ стаТировками ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ ΠΈ Π·Π°Π±ΠΈΡ€Π°ΠΉ свой ΠΎΡ„Ρ„Π΅Ρ€ 🀘 1. Π‘Ρ‚Π°ΠΆΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ вакансии ΠΏΠΎ России ΠΈ ΠΌΠΈΡ€Ρƒ 2. IT вакансии ΠΏΠΎ БНГ 3. IT стаТировки ΠΏΠΎ БНГ 4. IT стаТировки ΠΈ волонтСрства 5. IT стаТировки Π² Ρ‚ΠΎΠΏΠΎΠ²Ρ‹Ρ… компаниях ΠΌΠΈΡ€Π° 6. Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ IT вакансии ΠΈ стаТировки 7. Python вакансии ΠΈ стаТировки 8. Π‘Π˜Π“Π’Π•Π₯ вакансии ΠΈ стаТировки 9. Design вакансии ΠΈ стаТировки 10. QA вакансии ΠΈ стаТировки 11. Junior вакансии ΠΈ стаТировки 12. Frontend вакансии ΠΈ вопросы собСсов 13. Вакансии ΠΈ стаТировки для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ² 14. Вакансии Π² русских стартапах Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ 15. Вакансии ΠΈ стаТировки для DevOps 16. Вакансии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π½Π° Π₯Π₯.Π Π£

➑️ Easy Java | #ΠœΠ΅ΠΌΡ‹
➑️ Easy Java | #ΠœΠ΅ΠΌΡ‹

ΠΠΉΡ‚ΠΈΡˆΠ½ΠΈΠΊΠΈ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π”ΠžΠ₯#Π― πŸ’΅πŸ’΅ НС всС, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС Ρ…Π²Π°Ρ‚ΠΊΠΈΠ΅. ΠšΡ‚ΠΎ с Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ ΠΈ Ρ‡Ρ‘Ρ‚ΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€
ΠΠΉΡ‚ΠΈΡˆΠ½ΠΈΠΊΠΈ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π”ΠžΠ₯#Π― πŸ’΅πŸ’΅ НС всС, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС Ρ…Π²Π°Ρ‚ΠΊΠΈΠ΅. ΠšΡ‚ΠΎ с Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ ΠΈ Ρ‡Ρ‘Ρ‚ΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ. πŸ’Ό Π Ρ‹Π½ΠΎΠΊ сСйчас ΠΏΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚ НЕ знания. Он ΠΏΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ модСль БизнСс-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ β€” ΠΊΠ°Π½Π°Π» ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ люди Π² IT, бизнСсС ΠΈ Π½Π° фрилансС ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ ΠΈΠ· своих Π·Π½Π°Π½ΠΈΠΉ Π΄ΠΎΡ…ΠΎΠ΄ Π² нСсколько тысяч $ Π² мСсяц. Подпишись ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΠΉ знания Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ‡️ https://t.me/+yEOgj-E-dYw0NWYy https://t.me/+yEOgj-E-dYw0NWYy

ΠžΡ‚Π²Π΅Ρ‚:
Anonymous voting

➑️ Easy Java | #Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°
➑️ Easy Java | #Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°

πŸ‘©β€πŸ’» Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ AtomicInteger Π² Java ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½? AtomicInteger β€” это класс ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° java.util.concurrent.atomic, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами Π±Π΅Π· использования synchronized.
ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (incrementAndGet, decrementAndGet, compareAndSet) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ потокобСзопасно благодаря Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ процСссора (CAS β€” Compare-And-Swap).
β€’ ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ‹ΠΉ счётчик Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ β€’ БыстрСС, Ρ‡Π΅ΠΌ synchronized β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для высоконагруТСнных ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… систСм ⚑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
import java.util.concurrent.atomic.AtomicInteger;

public class Main {
    private static final AtomicInteger counter = new AtomicInteger(0);

    public static void main(String[] args) {
        Runnable task = () -> {
            for (int i = 0; i < 1000; i++) {
                counter.incrementAndGet();
            }
        };

        Thread t1 = new Thread(task);
        Thread t2 = new Thread(task);

        t1.start();
        t2.start();

        try {
            t1.join();
            t2.join();
        } catch (InterruptedException ignored) {}

        System.out.println("Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: " + counter.get());
    }
}
πŸ‘€ AtomicInteger особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ подсчётС событий, Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ID ΠΈΠ»ΠΈ создании Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… структур Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π±Π΅Π· тяТёлых Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.
➑️ Easy Java | #ВСория

ΠžΡ‚Π²Π΅Ρ‚:
Anonymous voting

➑️ Easy Java | #Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°
➑️ Easy Java | #Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°

❓ Вопрос с собСса Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ try-with-resources Π² Java ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ try? ΠŸΡ€ΠΈΠΌΠ΅Ρ€πŸ”½
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
            System.out.println(reader.readLine());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
ΠžΡ‚Π²Π΅Ρ‚πŸ”½
try-with-resources автоматичСски Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ рСсурсы (Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΡ‚ΠΎΠΊΠΈ, соСдинСния) послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π±Π»ΠΎΠΊΠ° try. ВсС классы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π½Ρ‘ΠΌ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс AutoCloseable. πŸ“Œ Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ try, Π½Π΅Ρ‚ нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ close() Π² finally. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ рСсурса гарантируСтся Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ….
➑️ Easy Java | #БобСс

ΠœΠΈΠ»Π»ΠΈΠΎΠ½Π΅Ρ€-Π°ΠΉΡ‚ΠΈΡˆΠ½ΠΈΠΊ Π² 24 Π³ΠΎΠ΄Π°? Π—Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ β€” это Π’Π»Π°Π΄, Π΅ΠΌΡƒ 24, ΠΈ ΠΎΠ½ программист Π±Π΅Π· Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ образования.. IT ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈ
ΠœΠΈΠ»Π»ΠΈΠΎΠ½Π΅Ρ€-Π°ΠΉΡ‚ΠΈΡˆΠ½ΠΈΠΊ Π² 24 Π³ΠΎΠ΄Π°? Π—Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ β€” это Π’Π»Π°Π΄, Π΅ΠΌΡƒ 24, ΠΈ ΠΎΠ½ программист Π±Π΅Π· Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ образования.. IT ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это ниша, которая Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡƒΠΌΡ€Π΅Ρ‚ ΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠ»ΠΊΠ° ! ~ Π”ΡƒΠΌΠ°Π΅ΡˆΡŒ это слоТно? Π― ΠΈ тСбя Π½Π°ΡƒΡ‡Ρƒ Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² IT ΠΈ Ρ€Π°ΡΡ‚ΠΈΡ‚ΡŒ сСбя ΠΊΠ°ΠΊ высококлассного спСциалиста ΠΌΠΈΡ€ΠΎΠ²ΠΎΠ³ΠΎ уровня! НС Π²Π΅Ρ€ΠΈΡˆΡŒ? Π—Π°Π±ΠΈΡ€Π°ΠΉ бСсплатныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π² ΠΌΠΎΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅ πŸ‘‡ https://t.me/+0-MtMJkZF2BlOWM6

➑️ Easy Java | #ΠœΠ΅ΠΌΡ‹
➑️ Easy Java | #ΠœΠ΅ΠΌΡ‹

πŸ‘©β€πŸ’» Π’ ΡΠ΅Ρ‚ΡŒ Π²Ρ‹Π²Π°Π»ΠΈΠ»Π°ΡΡŒ гигантская ΠΊΡƒΡ‡Π° курсов ΠΈ ΠΊΠ½ΠΈΠ³ ΠΎΡ‚ Ρ‚ΠΎΠΏΠΎΠ²Ρ‹Ρ… ITβ€‘ΡˆΠΊΠΎΠ» Π”Π΅Ρ€ΠΆΠΈ сотни Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ свСТих ΡƒΡ€ΠΎΠΊΠΎΠ², ΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ нСдСлю
πŸ‘©β€πŸ’» Π’ ΡΠ΅Ρ‚ΡŒ Π²Ρ‹Π²Π°Π»ΠΈΠ»Π°ΡΡŒ гигантская ΠΊΡƒΡ‡Π° курсов ΠΈ ΠΊΠ½ΠΈΠ³ ΠΎΡ‚ Ρ‚ΠΎΠΏΠΎΠ²Ρ‹Ρ… ITβ€‘ΡˆΠΊΠΎΠ» Π”Π΅Ρ€ΠΆΠΈ сотни Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ свСТих ΡƒΡ€ΠΎΠΊΠΎΠ², ΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ нСдСлю ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠΈΠ΄Ρ‹Π²Π°Π΅ΠΌ Π΅Ρ‰Ρ‘! 1402 Π“Π‘ β€” Python 1815 Π“Π‘ β€” Frontend 1515 Π“Π‘ β€” Backend 1300 Π“Π‘ β€” C / C++ 694 Π“Π‘ β€” Java 546 Π“Π‘ β€” SQL & Π‘Π” 411 Π“Π‘ β€” DevOps 898 Π“Π‘ β€” Π˜Π‘ & Π₯Π°ΠΊΠΈΠ½Π³ 212 Π“Π‘ β€” JavaScript 996 Π“Π‘ β€” Kotlin / Swift 173 Π“Π‘ β€” PHP 215 Π“Π‘ β€” GoLang 185 Π“Π‘ β€” Rust 517 Π“Π‘ β€” Linux 115 Π“Π‘ β€” QA / ВСстированиС 419 Π“Π‘ β€” GameDev 319 Π“Π‘ β€” 1C + Π›ΠΈΡ†Π΅Π½Π·ΠΈΠΈ 617 Π“Π‘ β€” МашинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ 687 Π“Π‘ β€” Аналитика Π”Π°Π½Π½Ρ‹Ρ… 998 Π“Π‘ β€” Π”ΠΈΠ·Π°ΠΉΠ½ ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡΡ ΠΈ Π½Π΅ ΠΏΠ»Π°Ρ‚ΠΈ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ бСсплатно

ΠžΡ‚Π²Π΅Ρ‚:
Anonymous voting

➑️ Easy Java | #Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°
➑️ Easy Java | #Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°

πŸ‘©β€πŸ’» Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ volatile Π² Java ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½? volatile β€” это ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ JVM: Π½Π΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° всСгда Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· основной памяти. Π­Ρ‚ΠΎ обСспСчиваСт Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π±Π΅Π· использования synchronized.
Он Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌΠΈ, Π½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΡ‚ΠΎΠΊΠΈ увидят Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ».
β€’ Π£ΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ β€’ Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ β€’ ИдСалСн для Ρ„Π»Π°Π³ΠΎΠ² ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² многопоточности ⚑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
public class Main {
    private static volatile boolean running = true;

    public static void main(String[] args) throws InterruptedException {
        Thread worker = new Thread(() -> {
            while (running) {
                // выполняСм Ρ€Π°Π±ΠΎΡ‚Ρƒ
            }
            System.out.println("ΠŸΠΎΡ‚ΠΎΠΊ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½");
        });

        worker.start();
        Thread.sleep(1000);
        running = false; // ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ станСт Π²ΠΈΠ΄Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅
    }
}
πŸ‘€ volatile особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ для Ρ„Π»Π°Π³ΠΎΠ² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, простых статусов ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π³Π΄Π΅ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ гарантированная Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ, Π½ΠΎ Π½Π΅ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° критичСских сСкций.
➑️ Easy Java | #ВСория

ΠžΡ‚Π²Π΅Ρ‚:
Anonymous voting