Microsoft Visual J++. Создание приложений и аплетов на языке Java

         

Методы класса Thread


В классе Thread определены три поля, несколько конструкторов и большое количество методов, предназначенных для работы с задачами. Ниже мы привели краткое описание полей, конструкторов и методов.

public class java.lang.Thread

  extends java.lang.Object

  implements java.lang.Runnable

{

  // -----------------------------------------------------

  // Поля

  // -----------------------------------------------------

  // Приоритеты задач

  public final static int NORM_PRIORITY; // нормальный

  public final static int MAX_PRIORITY;  // максимальный

  public final static int MIN_PRIORITY;  // минимальный

  // -----------------------------------------------------

  // Конструкторы

  // -----------------------------------------------------

  // Создание нового объекта Thread



  public Thread();

  // Создвание нового объекта Thread с указанием объекта,

  // для которого будет вызываться метод run

  public Thread(Runnable target);

  // Аналогично предыдущему, но дополнительно задается

  // имя нового объекта Thread

  public Thread(Runnable target, String name);

  // Создание объекта Thread с указанием его имени

  public Thread(String name);

  // Создание нового объекта Thread с указанием группы

  // задачи и объекта, для которого вызывается метод run

  public Thread(ThreadGroup group, Runnable target);

  // Аналогично предыдущему, но дополнительно задается

  // имя нового объекта Thread

  public Thread(ThreadGroup group, Runnable target,

    String name);

  // Создание нового объекта Thread с указанием группы

  // задачи и имени объекта

  public Thread(ThreadGroup group, String name);

  // -----------------------------------------------------

  // Методы

  // -----------------------------------------------------

  // Текущее количество активных задач в группе, к которой

  // принадлежит задача

  public static int activeCount();

  // Текущей задаче разрешается изменять объект Thread


  public void checkAccess();

  // Определение количества фреймов в стеке

  public int countStackFrames();

  // Определение текущей работающей задачи

  public static Thread currentThread();

  // Принудительное завершение работы задачи

  public void destroy();

  // Вывод текущего содержимого стека для отладки

  public static void dumpStack();

  // Получение всех объектов Tread данной группы

  public static int enumerate(Thread  tarray[]);

  // Определение имени задачи

  public final String getName();

  // Определение текущего приоритета задачи

  public final int getPriority();

  // Определение группы, к которой принадлежит задача

  public final ThreadGroup getThreadGroup();

  // Прерывание задачи

  public void interrupt();

  // Определение, является ли задача прерванной

  public static boolean interrupted();

  // Определение, выполняется задача или нет

  public final boolean isAlive();

  // Определение, является ли задача демоном

  public final boolean isDaemon();

  // Определение, является ли задача прерванной

  public boolean isInterrupted();

 

  // Ожидание завершения задачи

  public final void join();

  // Ожидание завершения задачи в течение заданного времени.

  // Время задается в миллисекундах

  public final void join(long millis);

  // Ожидание завершения задачи в течение заданного времени.

  // Время задается в миллисекундах и наносекундах

  public final void join(long  millis, int  nanos);

  // Запуск временно приостановленной задачи

  public final void resume();

  // Метод вызывается в том случае, если задача была

  // создана как объект с интерфейсом Runnable

  public void run();

  // Установка для задачи режима демона

  public final void setDaemon(boolean on);

  // Устаовка имени задачи

  public final void setName(String name);

  // Установка приоритета задачи



  public final void setPriority(int newPriority);

  // Задержка задачи на заднное время.

  // Время задается в миллисекундах и наносекундах

  public static void sleep(long millis);

  // Задержка задачи на заднное время.

  // Время задается в миллисекундах и наносекундах

  public static void sleep(long millis, int nanos);

  // Запуск задачи на выполнение

  public void start();

  // Остановка выполнения задачи

  public final void stop();

  // Аварийная остановка выполнения задачи с

  // заданным исключением

  public final void stop(Throwable obj);

  // Приостановка задачи

  public final void suspend();

  // Строка, представляющая объект-задачу

  public String toString();

  // Приостановка текущей задачи для того  чтобы

  // управление было передано другой задаче

  public static void yield();

}

С помощью конструкторов вы можете создавать задачи различными способами, указывая при необходимости для них имя и группу. Имя предназначено для идентификации задачи и является необязательным атрибутом. Что же касается групп, то они предназначены для организации защиты задач друг от друга в рамках одного приложения. Подробнее мы расскажем об этом позже.

Методы класса Thread предоставляют все необходимые возможности для управления задачами, в том числе для их синхронизации. Более подробное описание этих методов мы будем приводить по мере изложения материала.


Содержание раздела