Харт Джонсон М.
Шрифт:
Примечание. Будучи частью всех современных систем UNIX, потоки Pthreads доступны также в системах, отличных от UNIX.
Главы 8-10: синхронизация потоков
Область | Windows | UNIX/Pthreads | Примечания |
---|---|---|---|
Синхронизация: критические разделы | DeleteCriticalSection | Для эмуляции объектов критических разделов используйте мьютексы. | Библиотека С в данном случае не применима |
Синхронизация: критические разделы | EnterCriticalSection | Некоторые системы предоставляют собственные эквиваленты. | Библиотека С в данном случае не применима |
Синхронизация: критические разделы | InitializeCriticalSection | ↓ | |
Синхронизация: критические разделы | LeaveCriticalSection | ||
Синхронизация: события | CloseHandle (в данном случае закрытие дескриптора события) | pthread_cond_destroy | |
Синхронизация: события | CreateEvent | pthread_cond_init | |
Синхронизация: события | PulseEvent | pthread_cond_signal | Вручную сбрасываемое событие |
Синхронизация: события | ResetEvent | – | |
Синхронизация: события | SetEvent | pthread_cond_broadcast | Автоматически сбрасываемое событие |
Синхронизация: события | WaitForSingleObject (в данном случае ожидание дескриптора события) | pthread_cond_wait | |
Синхронизация: события | WaitForSingleObject (в данном случае ожидание дескриптора события) | pthread_timed_wait | |
Синхронизация: мьютексы | CloseHandle (в данном случае закрытие дескриптора мьютекса) | pthread_mutex_destroy | |
Синхронизация: мьютексы | CreateMutex | pthread_mutex_init | |
Синхронизация: мьютексы | ReleaseMutex | pthread_mutex_unlock | |
Синхронизация: мьютексы | WaitForSingleObject(в данном случае ожидание дескриптора мьютекса) | pthread_mutex_lock | |
Синхронизация: семафоры | CreateSemaphore | semget | |
Синхронизация: семафоры | – | semctl | Непосредственная поддержка всех опций в Windows отсутствует |
Синхронизация: семафоры | OpenSemaphore | semget | |
Синхронизация: семафоры | ReleaseSemaphore | semop (+) | |
Синхронизация: семафоры | WaitForSingleObject (в данном случае закрытие дескриптора семафора) | semop (-) | Windows может выполнять ожидание только одного счетчика |
Глава 11: Взаимодействие между процессами
Область | Windows | UNIX | Библиотека С | Примечания |
---|---|---|---|---|
IPC | CallNamedPipe | – | – | CreateFile, WriteFile, ReadFile, CloseHandle |
IPC | CloseHandle (pipe handle) | close, msgctl | pclose | |
IPC | ConnectNamedPipe | – | – | |
IPC | CreateMailslot | – | – | |
IPC | CreateNamedPipe | mkfifo, msgget | – | |
IPC | CreatePipe | pipe | popen | He является частью стандартной библиотеки С — см. [40] |
IPC | DuplicateHandle | dup, dup2, or fcntl | – | Или используйте стандартные имена файлов CONIN$, CONOUT$ |
IPC | GetNamedPipeHandleState | stat, fstat, lstat64 | – | |
IPC | GetNamedPipeInfo | stat, fstat, lstat | – | |
IPC | ImpersonateNamedPipeClient | – | – | |
IPC | PeekNamedPipe | – | – | |
IPC | ReadFile (в данном случае используется дескриптор именованного канала) | read (fifo), msgsnd | – | |
IPC | RevertToSelf | – | – | |
IPC | SetNamedPipeHandleState | – | – | |
IPC | TransactNamedPipe | – | – | WriteFile; ReadFile |
IPC | WriteFile (в данном случае используется дескриптор именованного канала) | write (fifo), msgrcv | – | |
Разное | GetComputerName | uname | – |