/
eelamimi
/
SberJavaCourseBeginner
Обзор
Документация
Войти
/
eelamimi
/
SberJavaCourseBeginner
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
cw_6
src/examples/Test.java
71 строка
2 KB
glebka
some some some
16 июн 2025, 18:16
16 июн 2025, 18:16
d6c1690
Код
Авторство
О чём код?
package examples; import java.util.concurrent.*; import java.util.stream.*; public class Test { public static void main(String[] args) throws InterruptedException { for (int i = 0; i < 50; i++) { Foo foo = new Foo(); Thread t1 = new Thread(() -> { foo.x = 1; foo.y = 1; }); Thread t2 = new Thread(() -> { while (foo.y != 1) { } System.out.println(foo.x); }); t1.start(); t2.start(); t1.join(); t2.join(); } var result = Stream.of(1, 2, 3, 4, 5) .collect(Collectors.teeing( Collectors.summingInt(i -> i), Collectors.counting(), (sum, count) -> sum / count)); System.out.println(result); int n = 1000; CopyOnWriteArrayList<Integer> list = new CopyOnWriteArrayList<>(); Semaphore s1 = new Semaphore(1); Semaphore s2 = new Semaphore(0); Thread t1 = new Thread(() -> { for (int i = 0; i < n; i++) { try { s1.acquire(); list.add(1); } catch (InterruptedException e) { throw new RuntimeException(e); } finally { s2.release(); } } }); Thread t2 = new Thread(() -> { for (int i = 0; i < n; i++) { try { s2.acquire(); list.add(2); } catch (InterruptedException e) { throw new RuntimeException(e); } finally { s1.release(); } } }); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println(list); } }