Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Розробка програми, що демонструє багатопоточність для одного процесора

Реферат Розробка програми, що демонструє багатопоточність для одного процесора





астивість Name вручну (задається привласненням), то згодом потік залишиться неіменованого. Властивість ж Id заповнюється автоматично при створенні завдання. Присвоєння ідентифікатора завданню відбувається динамічно. Більше того, програмно неприпустимі завдання з однаковими Id, чого не можна сказати про властивість Name, де іменування різних потоків однаковими іменами припустимо. Потоки з однаковими іменами і неіменовані потоки можу створити велику плутанину при побудові багатопотокової програми. Бібліотека паралельних завдань дозволяє уникнути даних незручностей. p align="justify"> Також в клас Task було включено властивість Result. Воно необхідне для того, щоб можна було організувати повернення значення з завдання. p align="justify"> public TResult Result {get; internal set;}

Дана властивість доступно тільки для читання поза виконуваної завдання, так як аксессор set є для даної властивості внутрішнім. Такий механізм схожий на всім добре відомий механізм повернення значення з функції, і досить легко розуміємо. p align="justify"> Створення завдання і запуск задачі відбувається шляхом створення об'єкта типу Task і виклику методу Start ().

public Task (Action act); void Start ();

Параметр act - точка входу в код, який представляє задачу. Подібним же чином відбувається і створення потоку за допомогою класу Thread. Але бібліотека паралельних завдань додала декілька більш ефективних методів створення завдання. Йдеться про метод StartNew (), визначеному в класі TaskFactory.Task StartNew (Action act);

Об'єкт класу TaskFactory може бути отриманий з властивості Factory, доступного тільки для читання в класі Task. У цьому методі спочатку створюється екземпляр класу Task для дії, що визначається параметром act, а потім відразу ж здійснюється запуск завдання на виконання. Використання методу StartNew () є ефективним у тих випадках, коли завдання створюється і відразу ж запускається, адже в даній ситуації не потрібно викликати метод Start (). У TPL (так само як і в стандартних способи організації паралелізму) як завдання можна використовувати не тільки метод, але і лямбда-вираз, як окремо вирішувалося завдання. Лямбда-вирази - особливий вид анонімних функцій. Використання лямбда-виразів найбільш корисно в тих випадках, коли призначенням методу служить виконання разової задачі (оформляти дану задачу в окремий метод було б надмірною). Ще одним приємним нововведенням бібліотеки паралельних завдань є В«сімействоВ» методів очікування. Якщо в класі Thread була визначено метод Join (), що очікує завершення потоку, для якого він був викликаний, то в класі Task найпростішим методом очікування є метод Wait (). Void Wait ();

Різниці між функціями Join () і Wait () немає абсолютно ніякої (хіба що назва wait найбільш зрозуміло описує сенс функції). Але в бібліотеку паралельних завдань включені й інші методи очікування, В«род...


Назад | сторінка 5 з 15 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Вивчення паралельних методів решение Завдання матричного множення
  • Реферат на тему: Метод і завдання соціально-економічної статистики
  • Реферат на тему: Домашні завдання і вдосконалення творчих здібностей учнів за допомогою дома ...
  • Реферат на тему: Аналіз Виконання планових Завдання з виробничої програми за рік
  • Реферат на тему: Практико-орієнтовані завдання як засіб реалізації прикладної спрямованості ...