Логин:   Пароль:




Новости
Рассылки
Форум
Поиск


Java
- Апплеты
- Вопрос-ответ
- Классы
- Примеры
- Руководства
- Статьи
- IDE
- Словарь терминов
- Скачать

Мобильная Java
- Игры
- Примеры
- Статьи
- WAP, WML и пр.

JavaScript
- Вопрос-ответ
- Примеры
- Статьи

Веб-мастеринг
- HTML
- CSS
- SSI

Разминка для ума
Проекты
Книги
Ссылки
Программы
Юмор :)




Rambler's Top100

Java: ПримерыКак передать все поля одного объекта-потока в другой объект-поток?

Как передать все поля одного объекта-потока в другой объект-поток?

Как передать все поля одного объекта-потока в другой объект-поток? К примеру, хочу, использовать методы (или поля) первого объекта из другого объекта-потока.

Для такого случая, мы передадим ссылку на первый объект во второй объект. Для простоты, мы передадим эту ссылку (передается, как this) в конструктор второго объекта. Там мы присвоим локальному полю эту ссылку (new не используем). Тип объекта мы указываем явно и сразу. Однако можно этого сразу не недать, а в последствии привести к нужному типу (от главного мета объекта Object). В примере - 2 класса, реализующие вычислительные потоки. Оба работают и пополняют один и тот же вектор. Заведенный в первом классе. Затем из первого класса выводится его содержимое.


package test;

public class Tr1 extends Thread implements Runnable {
        public java.util.Vector tVector;
/**
 * Tr1 constructor comment.
 */
public Tr1() {
 super();
 makeNewVector();
}
/**
 * Starts the application.
 * @param args an array of command-line arguments
 */
public static void main(java.lang.String[] args) {
 // Insert code to start the application here.
 Tr1 tTr1=new Tr1();
 tTr1.makeNewVector();
 tTr1.start();
}
/**
 * Insert the method's description here.
 * Creation date: (08.06.01 9:42:22)
 */
private void makeNewVector() {
 tVector = new java.util.Vector();
 Tr2 tTr2=new Tr2(this);
 tTr2.start();

}
/**
 * run method comment.
 */
public void run() {
 int count;
 count = 1;
 while (count < 40) {
   try {
    tVector.addElement("Главный " + count);
    count++;
    this.sleep(100);
   }
   catch (InterruptedException e) {
     System.out.println("Обломс. Меня прервали :-( Искренне ваш - главный поток.");
   }
 }
 int tempCount;
 for (tempCount = 1; tempCount < tVector.size() ; tempCount++) {
  System.out.println("Главный поток: " + tVector.elementAt(tempCount));
 }
}
}





package test;

public class Tr2 extends Thread implements Runnable {
        public Tr1 tObject;
/**
 * Tr2 constructor comment.
 */
public Tr2() {
 super();
}
public Tr2(Tr1 t2Object) {
 tObject = t2Object;
}
/**
 * Starts the application.
 * @param args an array of command-line arguments
 */
public static void main(java.lang.String[] args) {
 // Insert code to start the application here.
}
/**
 * run method comment.
 */
public void run() {
 int count;
 count = 0;
 while (count<26;) {
  try {
   count++;
   this.sleep(80);
   tObject.tVector.addElement("Второй."+count);
  }
  catch (InterruptedException e) {
   System.out.println("Меня обломили. Второй поток");
  }
 }
}
}



Дирк Льюис, Петер Мюллер
"Java 2"
Подробнее>>
Заказать>>


Р. Р. Мухамедзянов
"Серверные приложения на языке Java"
Подробнее>>
Заказать>>

Узнай о чем ты на самом деле сейчас думаешь тут.


[an error occurred while processing this directive]



Apache Struts 2.0.11
Apache MyFaces Trinidad Core 1.2.3.
Sun переводит мобильные устройства с Java ME на Java SE
Хакерская атака!