Как послать сообщение из созданного потока в основной поток?
От: Аноним  
Дата: 26.05.07 12:18
Оценка:
Если я создам класс который implements Runnable и переопределю метод run где я делаю I/O операции.
Например, я выбираю SELECT из таблицы и данные скажем успешно помещены в переменную класса(или в переменную
класса используемого в потоке). Теперь хочу передать эти данные в основной поток.
Какой есть способ сделать это ? (хотя бы приблизительно)
Может надо "послать сообщение" основному потоку? Как?
Re: Как послать сообщение из созданного потока в основной по
От: aka50 Россия  
Дата: 26.05.07 13:14
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Если я создам класс который implements Runnable и переопределю метод run где я делаю I/O операции.

А>Например, я выбираю SELECT из таблицы и данные скажем успешно помещены в переменную класса(или в переменную
А>класса используемого в потоке). Теперь хочу передать эти данные в основной поток.
А>Какой есть способ сделать это ? (хотя бы приблизительно)
А>Может надо "послать сообщение" основному потоку? Как?

Стоит почитать про то, как вообще пишутся многопоточные приложения например
http://www.deitel.com/articles/java_tutorials/20051126/JavaMultithreading_Tutorial_Part1.html
а еще лучше книжку купить...

Далее вот в этом пакете есть куча разных способов синхронизации потоков
http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html

В частности http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html
Re: Как послать сообщение из созданного потока в основной по
От: Blazkowicz Россия  
Дата: 26.05.07 17:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Если я создам класс который implements Runnable и переопределю метод run где я делаю I/O операции.

А>Например, я выбираю SELECT из таблицы и данные скажем успешно помещены в переменную класса(или в переменную
А>класса используемого в потоке). Теперь хочу передать эти данные в основной поток.
А>Какой есть способ сделать это ? (хотя бы приблизительно)
А>Может надо "послать сообщение" основному потоку? Как?

Дежа вю, блин. Второй раз уже такая дурацкая постановка вопроса. Чтобы передать данные из одного потока в другой, их достаточно положить в одном потоке в общий ресурс, а потом из другого потока этот общий ресурс вычитать. Общим ресурсом может быть, например, поле какого-либо объекта или класса. А все остальное (нотификация, синхронизация), уже зависит от функциональности которую эти потоки реализуют. Так что рассказывай всю задачу в целом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.