🗊 Презентация Багатопотоковість і синхронізація. (Лекція 10)

Нажмите для полного просмотра!
Багатопотоковість і синхронізація. (Лекція 10), слайд №1 Багатопотоковість і синхронізація. (Лекція 10), слайд №2 Багатопотоковість і синхронізація. (Лекція 10), слайд №3 Багатопотоковість і синхронізація. (Лекція 10), слайд №4 Багатопотоковість і синхронізація. (Лекція 10), слайд №5 Багатопотоковість і синхронізація. (Лекція 10), слайд №6 Багатопотоковість і синхронізація. (Лекція 10), слайд №7 Багатопотоковість і синхронізація. (Лекція 10), слайд №8 Багатопотоковість і синхронізація. (Лекція 10), слайд №9 Багатопотоковість і синхронізація. (Лекція 10), слайд №10 Багатопотоковість і синхронізація. (Лекція 10), слайд №11

Вы можете ознакомиться и скачать презентацию на тему Багатопотоковість і синхронізація. (Лекція 10). Доклад-сообщение содержит 11 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Багатопотоковість і синхронізація асинхронні делегати; Thread; пул потоків; синхронізація; таймери; асинхронна модель на базі подій
Описание слайда:
Багатопотоковість і синхронізація асинхронні делегати; Thread; пул потоків; синхронізація; таймери; асинхронна модель на базі подій

Слайд 2


Навіщо потрібні потоки Потік – незалежна послідовність інструкцій, що отримує час процесора Багатопотоковість – спосіб “поділу обов’язків” окремий...
Описание слайда:
Навіщо потрібні потоки Потік – незалежна послідовність інструкцій, що отримує час процесора Багатопотоковість – спосіб “поділу обов’язків” окремий потік для довготривалої задачі різні потоки для різних ядер процесора Процес == ресурси + пам’ять + потік(и) системна охорона адресного простору міжпроцесна взаємодія – через ОС Потік має власний стек для локальних змінних, використовує спільні код і купу спільна пам’ять – проста взаємодія між потоками Потреби синхронізації потоків

Слайд 3


Асинхронні делегати Створення делегата, виклик асинхронним чином int TakesAWhile(int data, int ms, char c) //”тривалий”метод // тип делегата і...
Описание слайда:
Асинхронні делегати Створення делегата, виклик асинхронним чином int TakesAWhile(int data, int ms, char c) //”тривалий”метод // тип делегата і екземпляр делегата delegate int TakesAWhileDelegate(int data, int ms, char c); TakesAWhileDelegate d = TakesAWhile; // “контрольований” асинхронний виклик // IAsyncresult BeginInvoke(, AsyncCallback, object); IAsyncresult ar = d.BeginInvoke(counter, 3000, '.', null, null); Очікування завершення та отримання результату while ( !ar.IsCompleted ) …// паралельне виконання ще чогось //MethodResultType EndInvoke(IAsyncResult ar); result = d.EndInvoke(ar); // також очікує, якщо потік ще працює

Слайд 4


Дескриптор очікування Асинхронний зворотній виклик Альтернативний спосіб реалізації очікування З об’єктом IAsyncResult асоційовано дескриптор...
Описание слайда:
Дескриптор очікування Асинхронний зворотній виклик Альтернативний спосіб реалізації очікування З об’єктом IAsyncResult асоційовано дескриптор WaitHandle (приховує системний об’єкт синхронізації) property AsyncWaitHandle bool WaitOne(int Timeout) // метод(и) “присипляє” потік Результат залежить від того, чи завершився потік впродовж Timeout мілісекунд “Запустити і забути” void AsyncCallback(IAsyncresult ar); // тип делегата void TakesAWhileCompleted(IAsyncResult ar) // метод d.Beginlnvoke(counter, 3000, TakesAWhileCompleted, obj); //Beginlnvoke(, MetodOrLambda, objectForMethod)

Слайд 5


Клас Thread. Передавання даних потокам Створювати і керувати delegate void ThreadStart(); tread = new Thread(aMethodName) лямбда-вираз замість методу...
Описание слайда:
Клас Thread. Передавання даних потокам Створювати і керувати delegate void ThreadStart(); tread = new Thread(aMethodName) лямбда-вираз замість методу tread.Start(); Name, Priority … Thread.Sleep(ms), Abort(), ResetAbort(), … Створені потоки – пріоритетні Метод з параметром delegate void ParametrizedThreadStart(object); Клас з даними і методом, що стане методом потоку

Слайд 6


Оновлення інтерфейсу користувача з асинхронного потоку Оновлювати інтерфейс можна тільки в тому потоці, який його створив // тип делегата для методу,...
Описание слайда:
Оновлення інтерфейсу користувача з асинхронного потоку Оновлювати інтерфейс можна тільки в тому потоці, який його створив // тип делегата для методу, що оновлюватиме вікно delegate void SetTextCallback(string text); void ChangeName(string name) // сам метод // створення і запуск потоку thread = new Thread(new ThreadStart(DoWork)); thread.Start(); // оновлення вікна, виклик в тілі DoWork if (this.control.InvokeRequired) { this.Invoke(new SetTextCallback(ChangeName), new object[] {" New Text by Invoke" }); }

Слайд 7


Пули потоків ThreadPool Створення потоку – затрати часу ==> колекція потоків створених завчасу Автоматичне налаштування кількості потоків Постановка...
Описание слайда:
Пули потоків ThreadPool Створення потоку – затрати часу ==> колекція потоків створених завчасу Автоматичне налаштування кількості потоків Постановка в чергу завдань за відсутності вільних потоків Обмеження: всі потоки фонові змінювати пріоритет чи ім’я потоку не можна потоки для короткотривалих завдань

Слайд 8


Засоби синхронізації потоків одного процесу lock(anObject) // thread-safe resources k++; //thread-unsafe operation Interlocked.Operation(anObject)...
Описание слайда:
Засоби синхронізації потоків одного процесу lock(anObject) // thread-safe resources k++; //thread-unsafe operation Interlocked.Operation(anObject) Increment(), Decrement(), Exchange(), Add(), … Monitor: lock(anObj)  Monitor.Enter(anObj) bool lockTaken = false; Monitor.TryEnter (obj, 500, ref lockTaken); if (lockTaken) { try { // синхронизирована область для obj } finally { Monitor.Exit (obj); } } else { // блокування отримати не вдалося }

Слайд 9


Проблеми багатопотоковості “Гонки” – змагання за один ресурс несинхронізованих потоків Блокування ресурсу на час доступу на рівні самого ресурсу на...
Описание слайда:
Проблеми багатопотоковості “Гонки” – змагання за один ресурс несинхронізованих потоків Блокування ресурсу на час доступу на рівні самого ресурсу на рівні звертання до ресурсу “Тупики” – взаємне блокування як наслідок очікування на завершення роботи ліміти часу на очікування зняття блокувань

Слайд 10


Засоби синхронізації процесів WaitHandle Mutex Semaphore Event ReaderWriterLockSlim Таймери Шаблон BackgroundWorker
Описание слайда:
Засоби синхронізації процесів WaitHandle Mutex Semaphore Event ReaderWriterLockSlim Таймери Шаблон BackgroundWorker

Слайд 11


На самостійне вивчення Задачі (task) – новий рівень абстракції потоків (.Net 4.0) Багатопотокові обчислення за допомогою класу Parallel (.Net 4.0)
Описание слайда:
На самостійне вивчення Задачі (task) – новий рівень абстракції потоків (.Net 4.0) Багатопотокові обчислення за допомогою класу Parallel (.Net 4.0)



Похожие презентации
Mypresentation.ru
Загрузить презентацию