|
|
|
Потоки. Объясните новичку, как передать изменяющуюся переменную в поток.
|
|||
|---|---|---|---|
|
#18+
Есть класс, в который в переменные постоянно получает координаты. В нем две переменные longitude & latitude. Внутренним классом запускается поток, который эти переменные рассылает при изменении. Хочу вынести внутренний поток в самостоятельный класс, но как получать постоянно апдейты переменных? Через статические методы? Как это вообще делается нормальными руками? :) Например: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 21:28:25 |
|
||
|
Потоки. Объясните новичку, как передать изменяющуюся переменную в поток.
|
|||
|---|---|---|---|
|
#18+
sgretschЕсть класс, в который в переменные постоянно получает координаты. В нем две переменные longitude & latitude. Внутренним классом запускается поток, который эти переменные рассылает при изменении. Хочу вынести внутренний поток в самостоятельный класс, но как получать постоянно апдейты переменных? Через статические методы? Как это вообще делается нормальными руками? :) Например: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Путаная постановка задачи, кто куда рассылает непонятно. В целом задача синхронизации данных решается по-разному, в зависимости от контекста. Вариант 1) Нужно расшарить между n-потоками, но все они известны вначале. В таком случае при старте программы вы создаете объект Coords(с синхронизированными методами), и передаете эту ссылку, ну допустим, в конструкторы всех потоков. Это безопаснее чем шарить между всеми возможными потоками. Вариант 2) Когда действительно нужно расшарить между всеми потоками. Тогда да, создается синглтон, или какая-либо другая общедоступная точка доступа, и объект Coord ложится туда, а все остальные оттуда вычитывают. Вариант 3) Лучше вообще ничего не шарить, всеми правдами и неправдами нужно стараться этого избежать. Но если уж прям реально необходимо тогда вариант 1 и вариант 2 Ты задачу расскажи, может тут вариант 3 как раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 22:29:54 |
|
||
|
Потоки. Объясните новичку, как передать изменяющуюся переменную в поток.
|
|||
|---|---|---|---|
|
#18+
И еще уточнение, объект, который шарится обязательно должен быть потокобезопасным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 22:35:06 |
|
||
|
Потоки. Объясните новичку, как передать изменяющуюся переменную в поток.
|
|||
|---|---|---|---|
|
#18+
Да я вроде всё рассказал, мож сам чего-то непонимаю. Есть класс А который постоянно получает координаты, есть поток B, который эти координаты рассылает. Как координаты из класса А, постоянно передавать в класс потока B (при условии что поток, это другой класс)? Поток надо запускать из класса А. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 23:04:26 |
|
||
|
Потоки. Объясните новичку, как передать изменяющуюся переменную в поток.
|
|||
|---|---|---|---|
|
#18+
Координаты постоянно обновляются, поток должен быть запущен один раз ессно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 23:05:29 |
|
||
|
Потоки. Объясните новичку, как передать изменяющуюся переменную в поток.
|
|||
|---|---|---|---|
|
#18+
sgretschДа я вроде всё рассказал, мож сам чего-то непонимаю. Есть класс А который постоянно получает координаты, есть поток B, который эти координаты рассылает. Как координаты из класса А, постоянно передавать в класс потока B (при условии что поток, это другой класс)? Поток надо запускать из класса А. убрать поток и в Sett'ере класса А сразу СИНХРОННО отправлять в класс B ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 23:43:54 |
|
||
|
Потоки. Объясните новичку, как передать изменяющуюся переменную в поток.
|
|||
|---|---|---|---|
|
#18+
sgretschПоток надо запускать из класса А. вот класс А и будет НЕ запускать поток, а отправлять координаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 23:45:49 |
|
||
|
Потоки. Объясните новичку, как передать изменяющуюся переменную в поток.
|
|||
|---|---|---|---|
|
#18+
вот я тоже не догонял зачем здесь потоки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2012, 01:40:13 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38097572&tid=2130269]: |
0ms |
get settings: |
18ms |
get forum list: |
25ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
66ms |
get topic data: |
19ms |
get forum data: |
5ms |
get page messages: |
92ms |
get tp. blocked users: |
3ms |
| others: | 321ms |
| total: | 563ms |

| 0 / 0 |
