
Alexey
04.02.2017
10:48:17
Сколько времени заняло?)

Артем
04.02.2017
11:13:27

Mishka
04.02.2017
13:10:43
Ребят помогите с многопоточностью. делают одновременно 4 пользователя запрос на json.
и вот как обрабатываются они
Главный поток создан.
5683
-кол-во файлов
Главный поток закончен.
Главный поток создан.
Главный поток создан.
Главный поток создан.
5683
-кол-во файлов
5683
-кол-во файлов
5683
-кол-во файлов
Главный поток закончен.
Главный поток закончен.
Главный поток закончен.

Google

Cargeh
04.02.2017
13:12:37
ты на каждый запрос делаешь свой поток?

Mishka
04.02.2017
13:12:52
да щас покажу
ModelAndView modelAndView = new JsonUrmHelper().createModelAndJson(url);
и вот как создаются эти потоки

Adam
04.02.2017
13:13:56
ты ещё не сказал что у тебя не работает

Mishka
04.02.2017
13:13:56
public ModelAndView createModelAndJson(String url) {
UrmJsonThread urmJsonThread = new UrmJsonThread(url);
Thread mainThread = new Thread(urmJsonThread);
mainThread.start();
try {
mainThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
return urmJsonThread.getModelAndView();

Cargeh
04.02.2017
13:14:30
Мне кажется, это излишне
Очень трудоемкий процесс - потоки создавать каждый раз
Можно, например, сделать ThreadPoolExecutor с двумя worker threads, и чтобы они обрабатывали постоянно

Mishka
04.02.2017
13:14:32
Всё работает, почему первый поток работает отдельно от других. тюе после него все остальные начинают работать одновременно

Adam
04.02.2017
13:14:44
о господи зачем джоиниться на только что созданный тред

Kirill
04.02.2017
13:15:12
почему бы не использовать CompetableFuture.run, это же просто и удобно

Mishka
04.02.2017
13:15:34
вот наверное потому что не знаю про это)

Kirill
04.02.2017
13:15:50
попробуй, футуры это круто

Adam
04.02.2017
13:16:43
ты понимаешь что написал?

Google

Mishka
04.02.2017
13:19:18
Я не понимаю со всем правильно join(). Я знаю что он будет ждать когда поток закончит работу. Но почему все остальные потоки параллельно работают кроме первого и жду когда он закончит

Adam
04.02.2017
13:19:34
Вопрос почему первый работает отдельно от других - ты уверен вообще что все так? Ты прямо видишь в браузере что следующие клиенты зависают пока первый не завершится?
То что он в консоли написал что завершился раньше ещё ни о чем не говорит, может шедудер их распределил так

Mishka
04.02.2017
13:21:01
конечно, вот жмут они 4 запроса. Запрос обрабатывается 10 секунд, этого достаточно увидеть, что запущен первый поток и 10 сек выполняется, и после него разом выстреливают и обрабатываются одновременно

Adam
04.02.2017
13:23:25
Кинь gist что там внутри треда делается

Mishka
04.02.2017
13:27:41
https://gist.github.com/Kleimosc/219ca28b9cad6db59b408834e2891ced
там страшный код) ну даже если его убрать и тупо sleep делать в главном потоке. они так же будут параллельно выполнятся после первого потока

Adam
04.02.2017
13:32:27
А эти четыре клиента они все одно и то же запрашивают?

Mishka
04.02.2017
13:35:05
конечно, даже самому не сложно это сделать за 3 секунды 5 запросов ручками жмякаешь. и все дружно ждём первый поток 10 сек. И потом раз после 10 секунд все остальные выполняются разом. Или я что то не учёл особенности spring`a

Adam
04.02.2017
13:35:49
нет, скорее где то ошибка, скажу чуть позже

Mishka
04.02.2017
13:39:43
Ну тут вот где то тут может быть ошибка.
Вот что в контроллере
ModelAndView modelAndView = new JsonUrmHelper().createModelAndJson(url);
Вот что в методе который создаёт потоки.
UrmJsonThread urmJsonThread = new UrmJsonThread(url);
Thread mainThread = new Thread(urmJsonThread);
mainThread.start();
try {
mainThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
return urmJsonThread.getModelAndView();
Пусть даже потоки эти просто и спят. Но они будут выполнятся только после первого

Adam
04.02.2017
13:40:39
тут нет ошибки.

Mishka
04.02.2017
13:45:48
да косяк всё таки в моё коде в этом главном потоке.
моём*
попробовал sleep поток, и работает всё одновременно

Иван
04.02.2017
13:49:09
А зачем там в контроллере создавать поток?
Если тут же join?

Adam
04.02.2017
13:49:48
где попробовал sleep?

Mishka
04.02.2017
13:50:33
вообще весь метод run sleep на 10 сек поставил. И одновременно работает
Зачем в контроллере? Просто я не знал как разграничить запросы двух и более пользователей.

Google

Иван
04.02.2017
13:56:29
А как new thread start join помогает?

Nikolai
04.02.2017
16:17:34
А никто не знает как в кложуре вызывать перегруженные джавовские методы?

Anton
04.02.2017
16:23:22
ты хочешь переопределить метод прямо в кложе?

Nikolai
04.02.2017
16:26:26
Нет, я просто хочу его вызвать)

Anton
04.02.2017
16:26:52
вот хороший пример перегрузки http://stackoverflow.com/questions/25337983/extend-java-class-in-clojure-how-to-override-only-one-of-two-similar-methods

Nikolai
04.02.2017
16:29:15
Ну я не хочу никакие новые классы, я просто хочу вызвать
javax.mail.Session.getStore(String)
а кложура постоянно вызывает
javax.mail.Session.getStore(URLName)
и падает (

V
04.02.2017
17:42:55

Mishka
04.02.2017
17:43:43

sss3 ?
04.02.2017
17:49:15

Mishka
04.02.2017
17:59:31
Его форы устраивают до милиона

sss3 ?
04.02.2017
18:16:30
А после?

V
04.02.2017
19:29:12
ребятки, кто-нить пользуется? https://github.com/lukesampson/scoop

V
04.02.2017
19:29:49
вроде удобно поднимать всякие там томкаты быстро

Vyacheslav
04.02.2017
20:58:44
Ребят, а как используя Java SE определить IP клиента
?

Alexander
04.02.2017
21:00:30
а что такое ip клиента?
кто такой клиент?

Николай
04.02.2017
21:01:04
Тот кто обратился к серверу

Vyacheslav
04.02.2017
21:01:46
ну думал что поймут, контекст слова "клиент"

Alexander
04.02.2017
21:01:54
Николай, не торопитесь

Google

Alexander
04.02.2017
21:02:17
@vbotnicov расскажи подробнее, что ты делаешь
как клиент с сервером коммуницирует?
кто такой клиент?

Vyacheslav
04.02.2017
21:03:54
Бота для telegram, дело в том что бот должен использовать геолокацию пользователя по ip адресу

Andrey
04.02.2017
21:04:54

Admin
ERROR: S client not available

Vyacheslav
04.02.2017
21:05:10
Мда, горе

Alexander
04.02.2017
21:05:30
подождите
бот же делает rpc или что-то подобное
он же должен знать, кому отправить сообщение?

Igor
04.02.2017
21:06:10
которому отправлять

Alexander
04.02.2017
21:06:43
уо, тогда никак

Igor
04.02.2017
21:06:47
вроде у юзера можно отдельно локацию запрашивать
но это точно не по ip

Vyacheslav
04.02.2017
21:07:14
грусть
но да ладно
просто много времени убил
на поиски инфы
а оказывается

Google

Vyacheslav
04.02.2017
21:07:49
я пытался совершить невозможное

V
04.02.2017
22:44:21

Andrey
04.02.2017
22:44:39
В телеграме местоположение же сбросить можно.
Во.

Igor
04.02.2017
22:47:23
бот может запрашивать напрямую у юзера location

Andrey
04.02.2017
22:48:17

Igor
04.02.2017
22:48:59

Andrey
04.02.2017
22:49:27
О, спасибо

The mirror
05.02.2017
07:01:37
http://www.javafind.net/gate.jsp?q=/library/36/java6_full_apidocs/com/sun/java/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.html

Sherxon
05.02.2017
07:06:28
?

Dmitry
05.02.2017
07:31:04
жыыр

sss3 ?
05.02.2017
08:33:50
нужно сравнить два судебных дела на схожесть (текст).
если просто прогнать алгоритм шинглов + добавив синонимы - на сколько релевантно будет?

Oleksandr
05.02.2017
08:56:30
для юридических дел пара других использованных слов может сделать трактование противоположным