Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование, т. 8

  

315 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

когда мне первый раз надо было массив отсортировать на паскале еще в школе то я закодил пузырек даже не зная что это так называется

это рили самое простое что можно придумать

Гений !

Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
 

Поделиться сообщением


Ссылка на сообщение

когда мне первый раз надо было массив отсортировать на паскале еще в школе то я закодил пузырек даже не зная что это так называется

это рили самое простое что можно придумать

любому человеку не знающему стандартные сортировки если дать задачу наалгоритмить сортировку без вспомогательного массива, то он с 60% шансом выдаст пузырёк, 40% вставку

Поделиться сообщением


Ссылка на сообщение

Откуда ты это знаешь  monkas


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение

Откуда ты это знаешь  monkas

он проводил тесты на маленьких гномиках в своем подвале

Arzanis, hira88, TheDeadSkin и 2 другим понравилось это

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

зашел в твитер а там (если аже iq это пишет, то дела у раста очень плохи)

https://i.imgur.com/E3Emlzi.png

Поделиться сообщением


Ссылка на сообщение

зашел в твитер а там (если аже iq это пишет, то дела у раста очень плохи)

E3Emlzi.png

это фотожоп, нас не обманешь

 

тебя же забанили везде, сиди в спутнике и не вкидывай дезинфу

Поделиться сообщением


Ссылка на сообщение
Баттхерт на крупный украинский портал для разрабов. Не буду скрывать — я о DOU. 

Мобильная версия — без мата не обойтись. Мало того, что пользоваться ею сложновато, так еще и страница с редактированием информации о профиле просто пиздец.

Как же долго я искал где сменить аватарку, пока не подумал что надо отзумить, адаптация сайта ахуенная.

Эти капельки табов это вообще 2004 — особенно рофл с зеркальным эффектом.

Неужто крупный ИТ-ресурс не может сделать адекватный адаптивный дизайн? 

7498c486848884943902b4cd63b2dc8c.jpg


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

зашел в твитер а там (если аже iq это пишет, то дела у раста очень плохи)

E3Emlzi.png

вообще-то foreach это нестандартное расширение от visualc++ и даже microsoft не рекомендует его использовать


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

откуда ты это взял?

в мсвс+++ нет такого

 

в плюсах вместо этого просто for (T &elem : collection) есть с обычным фор

Поделиться сообщением


Ссылка на сообщение

Как же у вас тут душно поцаны


userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

Неужто крупный ИТ-ресурс не может сделать адекватный адаптивный дизайн? 

а нахуя? они и так крупные, им незачем этим привлекать  аудиторию


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Тут же есть эксперты жавы.

 

Вопрос

Thread thread = Thread.currentThread();
        System.out.println("BaS" + thread.toString());
        CompletableFuture.supplyAsync(() -> {
            System.out.println("InAs" + Thread.currentThread().toString());
            return "E";
        }).whenComplete((s, throwable) -> {
            System.out.println("OutAs" + Thread.currentThread().toString());
        });

Почему whenComplete иногда запускается в BaS треде как надо, а иногда в форкджоин пуле.

BaSThread[task-4,5,main]
InAsThread[ForkJoinPool.commonPool-worker-2,5,main]
BaSThread[task-6,5,main]
InAsThread[ForkJoinPool.commonPool-worker-2,5,main]
OutAsThread[ForkJoinPool.commonPool-worker-2,5,main]
BaSThread[task-1,5,main]
InAsThread[ForkJoinPool.commonPool-worker-5,5,main]
OutAsThread[ForkJoinPool.commonPool-worker-5,5,main]
OutAsThread[task-4,5,main]

Например. Только один OutAsThread[task-4,5,main] вернулся в тред родитель. Вчом смысл тогда whenComplete от whenCompleteAsync когда у первого нет гарантии синхронного поведения.

Поделиться сообщением


Ссылка на сообщение
(изменено)

откуда ты это взял?

в мсвс+++ нет такого

 

в плюсах вместо этого просто for (T &elem : collection) есть с обычным фор

 

переносил билд с++ кода на линукс с винды и менял for each (item in collection) на for (item : collection)


Изменено пользователем DDamager

Поделиться сообщением


Ссылка на сообщение

Ладно я понял как запускаются методы CompletableFuture, но я бы сделал иначе или расширил, чтобы можно было создавать ранаблы и колаблы блокирующие родительский поток хотя бы.

Поделиться сообщением


Ссылка на сообщение

Ладно я понял как запускаются методы CompletableFuture, но я бы сделал иначе или расширил, чтобы можно было создавать ранаблы и колаблы блокирующие родительский поток хотя бы.

ну так понял - поясни


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение
(изменено)

Тут же есть эксперты жавы.

 

Вопрос

Thread thread = Thread.currentThread();
        System.out.println("BaS" + thread.toString());
        CompletableFuture.supplyAsync(() -> {
            System.out.println("InAs" + Thread.currentThread().toString());
            return "E";
        }).whenComplete((s, throwable) -> {
            System.out.println("OutAs" + Thread.currentThread().toString());
        });

Почему whenComplete иногда запускается в BaS треде как надо, а иногда в форкджоин пуле.

BaSThread[task-4,5,main]
InAsThread[ForkJoinPool.commonPool-worker-2,5,main]
BaSThread[task-6,5,main]
InAsThread[ForkJoinPool.commonPool-worker-2,5,main]
OutAsThread[ForkJoinPool.commonPool-worker-2,5,main]
BaSThread[task-1,5,main]
InAsThread[ForkJoinPool.commonPool-worker-5,5,main]
OutAsThread[ForkJoinPool.commonPool-worker-5,5,main]
OutAsThread[task-4,5,main]

Например. Только один OutAsThread[task-4,5,main] вернулся в тред родитель. Вчом смысл тогда whenComplete от whenCompleteAsync когда у первого нет гарантии синхронного поведения.

в твоих логах не понятно что OutAsThread[task-4,5,main]

относится к BaSThread[task-4,5,main]

передавай id какойнибудь чтобы можно было отслеживать что это один и тот же проход

вполне может быть что OutAsThread[task-4,5,main] - это уже освободившийся первый 

 

 

собственно - https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html

погуглить то перед тем как задавать вопрос, несудьба?

но я бы сделал иначе или расширил, чтобы можно было создавать ранаблы и колаблы блокирующие родительский поток хотя бы.

что блять


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

 

откуда ты это взял?

в мсвс+++ нет такого

 

в плюсах вместо этого просто for (T &elem : collection) есть с обычным фор

 

переносил билд с++ кода на линукс с винды и менял for each (item in collection) на for (item : collection)

 

хм, TIL

 

я думал там был бы такой же синтакс как у сшарповского "foreach" и ничего в доках не находил

плюс в оригинальном посте тоже было foreach, а не for each

Поделиться сообщением


Ссылка на сообщение

 

 

что блять
 
 CompletableFuture.supplyAsync(() -> {
            System.out.println("InAs" + Thread.currentThread().toString());
            return "E";
        }).whenComplete((s, throwable) -> {
            for (int i = 0; i < 100; i++) { //чтобы этот ранабл
                list.add(i);
            }
        });
        //блокировал этот поток что не понятно то блять
        list.forEach(System.out::println); //ConcurentModification

 

 

ну так понял - поясни
 

Ну таск выполняется CompletableFuture без асинхронности выполняется либо в потоке из цепочки выше, либо в потоке get либо в потоке где он родился.

У меня было 2 кондишона.

        CompletableFuture.supplyAsync(() -> {
        })
        .whenComplete((s, throwable) -> { //если лямбда выше успела выполниться до создания этой, то эта биндилась к основному потоку, если же лямбда выше ещё выполняется, то к ней биндится эта
        });

Поделиться сообщением


Ссылка на сообщение

 

что блять
 
 CompletableFuture.supplyAsync(() -> {
            System.out.println("InAs" + Thread.currentThread().toString());
            return "E";
        }).whenComplete((s, throwable) -> {
            for (int i = 0; i < 100; i++) { //чтобы этот ранабл
                list.add(i);
            }
        });
        //блокировал этот поток что не понятно то блять
        list.forEach(System.out::println); //ConcurentModification

 

 

ну так понял - поясни
 

Ну таск выполняется CompletableFuture без асинхронности выполняется либо в потоке из цепочки выше, либо в потоке get либо в потоке где он родился.

У меня было 2 кондишона.

        CompletableFuture.supplyAsync(() -> {
        })
        .whenComplete((s, throwable) -> { //если лямбда выше успела выполниться до создания этой, то эта биндилась к основному потоку, если же лямбда выше ещё выполняется, то к ней биндится эта
        });

photo-189498.jpg?_r=1543667877


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

 

что блять
 
 CompletableFuture.supplyAsync(() -> {
            System.out.println("InAs" + Thread.currentThread().toString());
            return "E";
        }).whenComplete((s, throwable) -> {
            for (int i = 0; i < 100; i++) { //чтобы этот ранабл
                list.add(i);
            }
        });
        //блокировал этот поток что не понятно то блять
        list.forEach(System.out::println); //ConcurentModification

 

 

ну так понял - поясни
 

Ну таск выполняется CompletableFuture без асинхронности выполняется либо в потоке из цепочки выше, либо в потоке get либо в потоке где он родился.

У меня было 2 кондишона.

        CompletableFuture.supplyAsync(() -> {
        })
        .whenComplete((s, throwable) -> { //если лямбда выше успела выполниться до создания этой, то эта биндилась к основному потоку, если же лямбда выше ещё выполняется, то к ней биндится эта
        });

чтобы лямбда внутри фьючи не может блокировать исходный поток сама по себе. можно в исходном потоке написать блокировку которая будет ждать выполнения фьючи

 

зачем нужен отдельно метод whenComplete (в отличае от его async версии ) - наверное кейс какой-то такой - у тебя забит пул, и ты в качестве оптимизации хочешь чтобы в текущем треде тогда вычислялась фьюча. а если тебе такая оптимизация наоборот ухудшит перформанс и хочешь чтобы всегда всё вбрасывалось в пул - пишешь async версию

 

на самом деле реальный кейс использования тоже интересен, найдешь ссылку - скинь. на SO за 5 паервых ссылок я чето не нашел


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...