Вниз  Java-программирование (1-ые посты)
- 7.08.2013 / 22:34
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Pauk52, двухмерный массив:
  1. int[][] array2d = new int[5][];
  2. for (int i = 0; i < array2d.length; i++) {
  3.    array2d[i] = new int[10];
  4.    for (int j = 0; j < array2d[i].length; j++) {
  5.       array2d[i][j] = i * j:
  6.    }
  7. }

__________________
 let live
- 7.08.2013 / 22:35
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Pauk52, не получится, ключами массива не могут быть строки :-(
я ничего не путаю?
__________________
 знает толк

Изменено vl@volk (7.08 / 22:42) (всего 1 раз)
- 7.08.2013 / 23:40
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
vl@volk, похоже путаешь. Никто тут не говорил про индексирование массивов строками
- 8.08.2013 / 08:46
gost6678
  Пользователь

gost6678 
Стандартные массивы имеют номера, по которым к ним можно обратиться, для использования текстовых ключей есть Хеш-таблица.
- 8.08.2013 / 15:06
[Rutar]
  Пользователь

[Rutar] 
Сейчас: Offline
Всем привет :)
Подскажите мне пожалуйста как правильно использовать потоки.
В Буткевича вообще мало информации, в Горнакова немного больше, по большей части в примерах.
Следовательно, как запустить поток я понял, все просто - new Thread().start ...
А вот с остановкой потока дела худшие, с паузой - вообще никакие. Я вот немного поексперементировал (с помощью примеров Горнакова). Выходит, поток уничтожается, когда мы выходим из метода run() { ... } ?

На моей Nokia 5130 - Add New - появляется 2 и сразу 1 - такое впечатление будто поток сам уничтожился, но он в действительности работает. Может ли я не понимаю, как работает метод Thread.activeCount() ?

На Kemulator - при запуске работает 4 потока (???), - Add New их становится 5, Destroy - 4, будто все правильно

На Oracle platform 3.2 - при запуске приблизительно 19 - 22 потока (???!!!) их количество все время само изменяется, так что определить количество активных потоков программы невозможно

Подскажите пожалуйста, я правильно уничтожаю потоки или нет ? И если неправильно, то как это нужно делать ? Как можно приостановить поток ? И еще одно - для чего нужен метод join() ?
Буду очень благодарен за ответ :)


Прикрепленные файлы:
NewClass.java (1.27 кб.) Скачано 652 раза
Threads.jar (2.35 кб.) Скачано 129 раз
- 8.08.2013 / 15:38
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
[Rutar], в методе run обычно используется цикл. Вот. этот цикл и останавливай. Если же у тебя действия выполняются "линейно", используй исключения для остановки. И не забывай про оператор return.
- 8.08.2013 / 15:39
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Почитай книгу Ноутона Шилтда, раздел о классе Thread
__________________
 знает толк
- 8.08.2013 / 15:41
Salat-Cx65
  Пользователь

Salat-Cx65 
Сейчас: Offline
SeTSeR, Если же у тебя действия выполняются "линейно", используй исключения для остановкиWTF????
- 8.08.2013 / 16:21
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
Salat-Cx65, да, не то что-то сморозил :-(
- 8.08.2013 / 16:23
gost6678
  Пользователь

gost6678 
[Rutar], в j2me нельзя остановить принудительно тред, можно только сделать цикл , в котором реализовать флаг остановки, треды можно использовать много раз только после остановки, а остановить можно только с помощью специального флага в цикле, вот пример смотри:
  1. import java.io.*;
  2.  
  3. public class A implements Runnable{
  4. Thread thread;
  5. boolean pause;
  6.  
  7. public A(){
  8. thread=new Thread(this);
  9. thread.start();
  10. }
  11.  
  12. public void run(){
  13. pause=false;
  14. while(!pause){
  15. try{
  16. thread.sleep(100);
  17. }catch(Exception e){}
  18. }
  19. }
  20.  
  21. }


Изменено gost6678 (8.08 / 16:26) (всего 3 раза)
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)