Клас Thread

У класі Thread визначено три поля, кілька конструкторів і сукупність методів, призначених для роботи з потоками. Статичні поля використовують для призначення пріоритетів потоків: NORM_PRIORITY, MAX_PRIORITY, 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);

Методи:

ü activeCount() – кількість активних потоків у групі, до якої належить потік;

ü checkAccess() – поточному потоку дозволяється змінювати об’єкт Thread;

ü countStackFrames() – визначення фреймів у стеку;

ü currentThread() – визначення потоку, що працює;

ü destroy() – примусове завершення роботи потоку.

Створення дочірнього класу на базі класу Thread

Розглянемо спосіб реалізації багато потоковості, заснований на успадкуванні від класу Thread. При використанні цього способу для потоку визначається окремий клас, наприклад, так:

class DrawRectangles extends Thread {

public void run(){…}

}

Інтегрована синхронізація потоків

Java містить підтримку багато потоковості як на рівні синтаксису мови, так і на рівні бібліотек і системних викликів.

На рівні самої мови методи, оголошені з ознакою synchronized, гарантовано не будуть виконуватися одночасно для даного об’єкта. Такі методи або блоки виконуються під контролем моніторів, які допомагають переконатися, що дані, доступ до яких здійснюється в цих методах або блоках, залишаються в узгодженому стані.

Кожен об’єкт Java має власний монітор, створення примірника і активація якого виконується Java VM у момент першого використання.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: