powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / правильная работа с потоками& JavaScript
1 сообщений из 1, страница 1 из 1
правильная работа с потоками& JavaScript
    #34479688
livehacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Вообщем хочу услышать от вас совета,как правильно сделать обработку потока.
Есть апплет,в апплете есть метод,который создаёт поток.
Поток взаимодействует с некоторым устройством,считывая с него данные,метод потока,который непосредственно считывает значения устройство сделан в виде цикла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
 public   class  MyThread  extends  Thread
{

 private   int  result =  0 ;


 public   int  getResult()
{
 return  result;
}

 public   void  deviceMethod()
{

 while (flag)
 {

// берём данные с устройства
 this .result = deviceGetResult();
   
    try {
   sleep( 100 )
     }
   catch  (InterruptedException ex)
     { 
      System.err.println(ex.getMessage());
     }



  }

 }
}
Внутри класса потока объявлен некоторый флаг (переменная result),который устанавливается каждый раз методом внутри цикла,если девайс находится в ожидании некоторого события ,он возвращает ,к примеру,1,если девайс обработал событие,он возвращает какой-то численный результат.И так флаг устанавливается каждый раз,когда цикл делает новую итерацию.Вообщемто число итераций в цикле ограничено:)),просто это не описал ,т.к в моей проблеме это не особо важно.

Далее в апплете,как я уже говорил раньше,есть метод,который запускает поток и далее обращается к переменной экземпляра созданного потока (та что public int result) ,берёт оттуда значение и возвращает его. Примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 public   class  MyApplet  extends  JApplet

{

MyThread myThread  =  null ;

 public   void  init ()
{
....
}


 public   int  getResultFromDevice()

{
 if  (myThread== null )
{
myThread =  new   myThread();
}
 return  myThread.getResult(); 
}

Метод апплета вызывается из js (метод getResultFromDevice())..
При первом обращении к этому методу,создаётся поток,при дальнейшем обращении к методу,как вы можете видеть ,я уже обращаюсь к созданному ранее потоку и беру у него значение.
Вообщем проблема состоит в том ,что я не особо пойму,как мне сделать так ,при вызове метода getResultFromDevice() апплет не возвращал сразу значение,а ждал ,пока он вернёт результат,а не единицу (т.е состояние ожидания),если я делаю цикл while внутри апплета,который будет ожидать "нормального результата" от потока,то вся форма,где загрузился апплет виснет..,пока поток не вернёт то значение,которое выведет прогу из цикла.... Или это надо делать цикл в js ,который вызывает метод getResultFromDevice(),до тех пор ,пока тот не вернёт нужное значение?..








}
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / правильная работа с потоками& JavaScript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]