Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Запуск двух тредов, независимо друг от друга


Автор: Цербер 7.9.2009, 09:11
Доброго времени суток уважаемые форумчане!
Приложение выводит список отрисованный канвасом, юзаю тред если строка списка не помещается в экране - делаю бегущую строку.
Но в тот же момент заголовк тоже может не вмещаться в экран, но как сделать две бегущие строки что бы они работали независимо друг от друга? т.е. запуск двух тредов независимо друг от друга!

Автор: hamsterKSU 7.9.2009, 09:15
привет smile

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

Добавлено @ 09:17
плодить треды в j2me - убисйтво для телефона. 
должно быть не больше 3-5 тредов.
обычно 3-мя всегда обходятся

Автор: Цербер 7.9.2009, 13:56
hamsterKSU ок попробую =) у меня больше 2 тредов пока не планируется =)

Автор: hamsterKSU 7.9.2009, 15:46
просто для UI обычно один тред

Автор: Цербер 28.1.2010, 14:36
Хочется поднять эту тему, дабы не плодить одинаковые.
Как то забросил из за нехватки времени всю эту тему, ща возвращаюсь по немногу, и эта задача так и осталась не реализованной.
Есть две строки: 
1. Заголовок
2. Название рубрики

как 1-ая так и 2-ая могут вмещаться в экран и крутить их не обязательно, а может быть так что обе должны крутиться, так вот заставить это всё работать?

Автор: ivanovpv 28.1.2010, 18:43
Цитата(hamsterKSU @  7.9.2009,  09:15 Найти цитируемый пост)
плодить треды в j2me - убисйтво для телефона. 
должно быть не больше 3-5 тредов.


У меня поднимается до 4-х тредов - пока вроде нормально...

Автор: Цербер 29.1.2010, 10:49
Цитата

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

заставил, но результат немного не тот, при достижении строки начала или конца у мну стоит секундная пауза, что бы строка как бешеная не носилась, в момент когда одна из 2-х строк достигает начала или конца вторая тоже останавливается, а это не айс =) возникает эффект зависания =) 
Т.к. запустить два треда друг от друга? ведь если я не ошибаюсь всё действие в итоге происходит в методе run, но я пробовал создавать две переменные класса:
Код

private Thread firstThread = new Thread(this);
private Thread secondThread = new Thread(this);

затем запускал их в контроллере:
Код

firstThread.start();
secondThread.start();

и в методе run пытаюсь один притормозить а глохнут оба почему то:
Код

 try {
    firstThread.sleep(1000);
}
catch (InterruptedException ie) {
     System.out.println(ie.getMessage());
}

например когда строка достигает конца она останавливается - проходит секунда и она в обратном режиме прокручивается к началу, и вот когда она останавливается, вторая строка в тот же момент останавливается ждёт секунду и бежит дальше.

Где я накосячил??

Автор: ivanovpv 29.1.2010, 12:01
Если ты пишешь:
Код

private Thread firstThread = new Thread(this);
private Thread secondThread = new Thread(this);


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

Автор: Цербер 29.1.2010, 12:12
Решение нашёл http://www.javamex.com/tutorials/threads/ на будущее, кто столкнётся с такой проблемой =)

Добавлено через 7 минут и 30 секунд
ivanovpv спасибо! я просто не знал что юзать run() можно несколько раз. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)