API Kumpulan Utas

Antarmuka pemrograman aplikasi kumpulan utas (API) menggunakan desain berbasis objek. Masing-masing objek berikut diwakili oleh struktur data mode pengguna:

  • Objek kumpulan adalah sekumpulan utas pekerja yang dapat digunakan untuk melakukan pekerjaan. Setiap proses dapat membuat beberapa kumpulan terisolasi dengan karakteristik yang berbeda seperlunya. Ada juga kumpulan default untuk setiap proses.
  • Grup pembersihan dikaitkan dengan sekumpulan objek yang menghasilkan panggilan balik. Fungsi ada untuk menunggu dan melepaskan semua objek yang merupakan anggota dari setiap grup pembersihan. Ini membebaskan aplikasi dari melacak semua objek yang telah dibuatnya.
  • Objek kerja ditetapkan ke kumpulan dan secara opsional ke grup pembersihan. Ini dapat diposting, menyebabkan utas pekerja dari kumpulan untuk menjalankan panggilan baliknya. Objek kerja dapat memiliki beberapa postingan yang luar biasa; masing-masing menghasilkan panggilan balik. Operasi pasca tidak dapat gagal karena kurangnya sumber daya.
  • Objek timer mengontrol penjadwalan panggilan balik. Setiap kali timer kedaluwarsa, panggilan baliknya diposting ke kumpulan pekerjanya. Pengaturan timer tidak dapat gagal karena kurangnya sumber daya.
  • Objek tunggu menyebabkan utas pelayan menunggu pada handel yang dapat di tunggu. Setelah waktu tunggu terpenuhi atau periode waktu habis berakhir, utas pelayan memposting panggilan balik objek tunggu ke kumpulan pekerja tunggu. Pengaturan tunggu tidak dapat gagal karena kurangnya sumber daya.
  • Objek I/O mengaitkan handel file dengan port penyelesaian I/O untuk kumpulan utas. Ketika operasi I/O asinkron selesai, utas pekerja mengambil status operasi dan memanggil panggilan balik objek I/O.

Tabel berikut ini menjelaskan fitur API kumpulan utas asli dan saat ini.

Fitur API Asli API Saat Ini
Sinkronkan RegisterWaitForSingleObject
UnregisterWaitEx
CloseThreadpoolWait
CreateThreadpoolWait
SetThreadpoolWait
WaitForThreadpoolWaitCallbacks
Kerja QueueUserWorkItem
CloseThreadpoolWork
CreateThreadpoolWork
SubmitThreadpoolWork
TrySubmitThreadpoolCallback
WaitForThreadpoolWorkCallbacks
Pengatur Waktu CreateTimerQueue
CreateTimerQueueTimer
ChangeTimerQueueTimer
DeleteTimerQueueTimer
DeleteTimerQueueEx
CloseThreadpoolTimer
CreateThreadpoolTimer
IsThreadpoolTimerSet
SetThreadpoolTimer
WaitForThreadpoolTimerCallbacks
I/O BindIoCompletionCallback
CancelThreadpoolIo
CloseThreadpoolIo
CreateThreadpoolIo
StartThreadpoolIo
WaitForThreadpoolIoCallbacks
Grup pembersihan CloseThreadpoolCleanupGroup
CloseThreadpoolCleanupGroupMembers
CreateThreadpoolCleanupGroup
Kumpulan CloseThreadpool
CreateThreadpool
SetThreadpoolThreadMaximum
SetThreadpoolThreadMinimum
Lingkungan panggilan balik DestroyThreadpoolEnvironment
InitializeThreadpoolEnvironment
SetThreadpoolCallbackCleanupGroup
SetThreadpoolCallbackLibrary
SetThreadpoolCallbackPool
SetThreadpoolCallbackPriority
SetThreadpoolCallbackRunsLong
Panggilan Balik CallbackMayRunLong
Pembersihan panggilan balik DisassociateCurrentThreadFromCallback
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns
ReleaseSemaphoreWhenCallbackReturns
SetEventWhenCallbackReturns

 

Kumpulan Utas

Menggunakan Fungsi Kumpulan Utas