原文出处:http://blog.youkuaiyun.com/zhengdy/article/details/5485472
Windows 和 Linux 的IPC API对应表
| Windows | Linux | Classification |
|---|---|---|
| CreateProcess() CreateProcessAsUser() | fork() setuid() exec() | Mappable |
| TerminateProcess() | kill() | Mappable |
| SetThreadpriority() GetThreadPriority() | Setpriority() GetPriority() | Mappable |
| GetCurrentProcessID() | getpid() | Mappable |
| Exitprocess() | exit() | Mappable |
| WaitForSingleObjec() WaitForMultipleObject() GetExitCodeProcess() | waitpid() ※Using Sys V semaphores, WaitForSingleObjec/MultipleObject can be implemented | Context specific |
| GetEnvironmentVariable() SetEnvironmentVariable() | getenv() setenv() | Mappable |
| Windows | Linux | Classification |
|---|---|---|
| CreateThread() | pthread_create pthread_attr_init pthread_attr_setstacksize pthread_attr_destroy | Mappable |
| ThreadExit() | pthread_exit | Mappable |
| WaitForSingleObject() | pthread_join pthread_attr_setdetachstate pthread_detach | Mappable |
| SetPriorityClass() SetThreadPriority() | setpriority sched_setscheduler sched_setparam pthread_setschedparam pthread_setschedpolicy pthread_attr_setschedparam pthread_attr_setschedpolicy> | Context Specific |
| Windows | Linux -- threads | Linux -- process |
|---|---|---|
| Mutex | Mutex - pthread library | System V semaphores |
| Critical section | Mutex - pthread library | Not applicable as critical sections are used only between the threads of the same process |
| Semaphore | Conditional Variable with mutex - pthreads POSIX semaphores | System V Semaphores |
| Event | Conditional Variable with mutex - pthreads | System V Semaphores |
| Windows | Linux -- threads | Linux -- process | Classification |
|---|---|---|---|
| CreateSemaphore | sem_init | semget semctl | Context specific |
| OpenSemaphore | Not applicable | semget | Context specific |
| WaitForSingleObject | sem_wait sem_trywait | semop | Context specific |
| ReleaseSemaphore | sem_post | semop | Context specific |
| CloseHandle | sem_destroy | semctl | Context specific |
| Windows | Linux -- threads | Linux -- process | Classification |
|---|---|---|---|
| CreateEvent OpenEvent | pthread_cond_init sem_init | semget semctl | Context specific |
| SetEvent | pthread_cond_signal sem_post | semop | Context specific |
| ResetEvent | N/A | N/A | Context specific |
| WaitForSingleObject | pthread_cond_wait pthread_cond_timedwait sem_wait sem_trywait | semop | Context specific |
| CloseHandle | pthread_cond_destroy sem_destroy | semctl | Context specific |
| Windows | Linux -- threads | Linux -- process | Classification |
|---|---|---|---|
| CreateMutex | pthreads_mutex_init | semget semctl | Context specific |
| OpenMutex | Not applicable | semget | Context specific |
| WaitForSingleObject | pthread_mutex_lock pthread_mutex_trylock | semop | Context specific |
| ReleaseMutex | pthread_mutex_unlock | semop | Context specific |
| CloseHandle | pthread_mutex_destroy | semctl | Context specific |
| Windows | Linux | Classification |
|---|---|---|
| InitializeCriticalSection InitializeCriticalSectionAndSpinCount | pthreads_mutex_init | Mappable |
| EnterCriticalSection TryEnterCriticalSection | pthread_mutex_lock pthread_mutex_trylock | Mappable |
| LeaveCriticalSection | pthread_mutex_unlock | Mappable |
| DeleteCriticalSection | pthread_mutex_destroy | Mappable |
| Windows | Linux -- threads | Linux -- process | Classification |
|---|---|---|---|
| SignalObjectAndWait | semop | semop | Context specific |
| WaitForMultipleObjects | sem_wait sem_trywait | semop | Context specific |
本文详细对比了Windows和Linux在进程映射、线程映射、同步机制映射以及信号量映射上的API,包括创建过程、终止过程、设置优先级、获取进程ID、退出过程等核心操作。
2260

被折叠的 条评论
为什么被折叠?



