|
|
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, такой вопрос: есть 2 потока, основной и Threader. Как из основного потока обратиться к методу Threader'а doSmth() так, чтобы он выполнился в потоке Threader, а не в основном? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ps. приложение юзает swing. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:38:08 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFly, передать в основной поток ссылку на Threader и вызывать метод Threader-а из run() Threader-а. Вызов выполнится в том потоке, где был вызов, т.е. в основном. Или... что вы имели в виду? Если что, нестатичные методы относятся не к потокам, а к объектам классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:47:56 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Miha_S7LedFly, из run() Threader-а из run() основного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:48:59 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFlyЗдравствуйте, такой вопрос: есть 2 потока, основной и Threader. Как из основного потока обратиться к методу Threader'а doSmth() так, чтобы он выполнился в потоке Threader, а не в основном? Методы не принадлежат потокам. Они пренадлежат классам. Вам нужно понять что поток может выполнить любой метод, перпендикулярно тому в каком классе этот метод находится. Thread это просот утилитный класс для запуска потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:51:38 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Miha_S7, Вообще, речь идет о том чтобы вынести взамодействие с БД в отдельный поток. Вот я и думаю, как это грамотно реализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:52:54 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFlyMiha_S7, Вообще, речь идет о том чтобы вынести взамодействие с БД в отдельный поток. Вот я и думаю, как это грамотно реализовать. Для GUI - SwingWorker ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:54:26 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFly, вы поняли фишку, что методы принадлежать не потокам? Если да, то попробуйте переформулировать ваш вопрос, ответ сразу окажется очевидным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:57:44 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Miha_S7, фишку понял, но про swingworker мучает вопрос: у меня все-равно не получиться с его помощью запустить отдельный поток для работы с БД, и по мере надобности обращаться к этому потоку с просьбой вида: выполни запрос, верни результат. То есть все-равно каждый раз придется запускать поток с определенными параметрами, сообщающими потоку, что надо сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:09:04 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFly, или организовать входящую и выходящую двухстоторонние очереди сообщений с блокировками и отправлять/принимать сообщения через них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:16:39 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFlyMiha_S7, фишку понял, но про swingworker мучает вопрос: у меня все-равно не получиться с его помощью запустить отдельный поток для работы с БД, и по мере надобности обращаться к этому потоку с просьбой вида: выполни запрос, верни результат. То есть все-равно каждый раз придется запускать поток с определенными параметрами, сообщающими потоку, что надо сделать? Что не получается? Код в студию! Туториал прочитайте хотя бы по SwingWorker ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:17:57 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFlyТо есть все-равно каждый раз придется запускать поток с определенными параметрами, сообщающими потоку, что надо сделать?Почитайте про пулы потоков и Executor. В них потоки создаются за вас, а вы им просто передаете задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:18:22 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Не могли бы вы хоть общий принцип рассказать, как работу с БД в отдельный поток вынести? Как хотелось-бы сделать: один раз при старте программы запустить поток для БД, и ему посылать команды (выполни запрос, залей данные). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:31:57 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFlyMiha_S7, Вообще, речь идет о том чтобы вынести взамодействие с БД в отдельный поток. Вот я и думаю, как это грамотно реализовать. а сервлета в потоке не хватает? Всё готовое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:41:36 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Petro123LedFlyMiha_S7, Вообще, речь идет о том чтобы вынести взамодействие с БД в отдельный поток. Вот я и думаю, как это грамотно реализовать. а сервлета в потоке не хватает? Всё готовое.расскажи, плииииз, как ты до сервлета дошёл. какие были рассуждения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:43:51 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFlyНе могли бы вы хоть общий принцип рассказать, как работу с БД в отдельный поток вынести? Как хотелось-бы сделать: один раз при старте программы запустить поток для БД, и ему посылать команды (выполни запрос, залей данные). SwingWorker Tutorial в гугле вбить трудно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:44:42 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, я уже пол интернета перелопатил, но все примеры рассчитаны на то что вот выполнили какое-то действие при запуске потока, и спокойно его остановили. А для моего случая ничего подходящего найти не удалось. Как этому потоку команды то передавать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:47:36 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFlyBlazkowicz, я уже пол интернета перелопатил, но все примеры рассчитаны на то что вот выполнили какое-то действие при запуске потока, и спокойно его остановили. А для моего случая ничего подходящего найти не удалось. Как этому потоку команды то передавать? Через SwingWoker и передавать. Он использует пул потоков. Он не создаёт потоки на каждый пук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:50:11 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
grasoff.net, пятн. ток завтра :) Лучше расскажи, как доходят до потоков с БД :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:52:17 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFly, 1. создёте реализации Runnable для каждого типа задачи t1, t2 2. cоздаёте экземпляр ThreadPoolExecutor tp 3. вызываете tp.execute(t1); tp.execute(t2). Задачи будут выполняться в отдельном потоке. Неужели вы когда читали (ли?) документацию не поняли этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:52:20 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, буду дальше копать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:52:32 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
Miha_S7, меня останавливает что так для каждой мелкой задачи придется свой класс(пусть и анонимный) реализовывать. И получиться много короткоживущих соединений. Пул конечно хорошо, но в моей задаче лучше 1 постоянный поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 14:57:11 |
|
||
|
Потоки и методы в них
|
|||
|---|---|---|---|
|
#18+
LedFlyMiha_S7, меня останавливает что так для каждой мелкой задачи придется свой класс(пусть и анонимный) реализовывать. И получиться много короткоживущих соединений. Пул конечно хорошо, но в моей задаче лучше 1 постоянный поток. 1. Пользователь однопоточный сам по себе; 2. Соединения можно брать из пула соединений с СУБД. Тогда у вас будет не много короткоживущих соединений, а пара-тройка длинных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 15:03:00 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37632799&tid=2132726]: |
0ms |
get settings: |
14ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
364ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
110ms |
get tp. blocked users: |
2ms |
| others: | 344ms |
| total: | 886ms |

| 0 / 0 |
