ядрі після отримання структури з черги. Об'єкт специфічний для MS Windows, і дозволяє обробку вхідних запитів з'єднання і порцій даних у серверному програмному забезпеченні в архітектурі, де число потоків може бути менше числа клієнтів (немає вимоги створювати окремий потік з витратами ресурсів на нього для кожного нового клієнта).
. ERESOURCE. М'ютекс, що підтримує рекурсивний захоплення, з семантикою розділяється або ексклюзивного захоплення. Семантика: об'єкт може бути або вільний, або захоплений довільним числом потоків розділяються чином, або захоплений всього одним потоком ексклюзивним чином. Будь-які спроби здійснити захвати, що порушує це правило, призводять до блокування потоку до тих пір, поки об'єкт не звільниться так, щоб зробити захоплення дозволеним. Також є операції виду TryToAcquire - ніколи не блокує потік, або захоплює, або (якщо потрібна блокування) повертає FALSE, нічого не роблячи. Використовується в ядрі Windows, особливо у файлових системах - так, наприклад, будь-якому кимось відкритого дисковому файлу відповідає структура FCB, в якій є 2 таких об'єкта для синхронізації доступу до розміру файлу. Один з них - paging IO resource - захоплюється ексклюзивно тільки в дорозі обрізання файлу, і гарантує, що в момент обрізання на файлі немає активного введення-виведення від кеша і від відображення в пам'ять.
. Rundown protection. Полудокументірованний (виклики присутні в файлах-заголовках, але відсутні в документації) об'єкт в ядрі Windows. Лічильник з операціями В«збільшитиВ», В«зменшитиВ» і В«чекатиВ». Очікування блокує потік до тих пір, поки операції зменшення не зменшать лічильник до нуля. Крім того, операція збільшення може відмовити, та наявність активного в даний момент часу очікування змушує відмовляти всі операції збільшення.
.2 Реалізація потоків в Delphi
мову програмування операційний потоковість
Особливості реалізації потоків Windows:
В· будь-який потік, створений у будь-якому процесі, управляється безпосередньо планувальником ядра операційної системи;
В· реалізована витісняє багатозадачність (preemptive multitasking), тобто потік з вищим пріоритетом може витіснити поточний потік;
В· всі потоки ядра виконуються або в контексті потоку, який ініціював системний виклик - IO операцію, або в контексті потоку системного процесу system.
Потоки в Delphi.
Реалізуються шляхом використання класу TThread:
1. Конструктор класу:
constructor Create (CreateSuspended: Boolean);
Як аргумент він о...