Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
созданная задача имеет нормальный приоритет NORM_PRIORITY.
 Если остальные задачи в системе имеют тот же самый приоритет, то все задачи 
пользуются процессорным времени на равных правах.
   При необходимости вы можете повысить или понизить приоритет отдельных задач, 
определив для них значение приоритета, соответственно, MAX_PRIORITY или 
MIN_PRIORITY. Задачи с повышенным приоритетом выполняются в первую очередь, а с 
пониженным - только при отсутствии готовых к выполнению задач, имеющих 
нормальный или повышенный приоритет.
   Реализация мультизадачности в Java
   Для создания мультизадачных приложений Java вы должны воспользоваться 
классом java.lang.Thread. В этом классе определены все методы, необходимые для 
создания задач, управления их состоянием и синхронизации.
   Как пользоваться классом Thread?
   Есть две возможности.
   Во-первых, вы можете создать свой дочерний класс на базе класса Thread. При 
этом вы должны переопределить метод run. Ваша реализация этого метода будет 
работать в рамках отдельной задачи.
   Во-вторых, ваш класс может реализовать интерфейс Runnable. При этом в рамках 
вашего класса необходимо определить метод run, который будет работать как 
отдельная задача.
   Как вы скоро увидите, система автоматизированного создания приложений Java, 
входящая в состав Microsoft Visual J++,  пользуется вторым из перечисленных 
выше способов. Этот способ удобен в тех случаях, когда ваш класс должен быть 
унаследован от какого-либо другого класса (например, от класса Applet) и при 
этом вам нужна мультизадачность. Так как в языке программирования Java нет 
множественного наследования, невозможно создать класс, для которого в качестве 
родительского будут выступать классы Applet и Thread. В этом случае реализация 
интерфейса Runnable является единственным способом решения задачи.
   Методы класса 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);

  // Устаовка имени задачи
  p
 
<<-[Весь Текст]
Страница: из 275
 <<-