多线程编程之Linux环境下的多线程

Posted 拙园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程编程之Linux环境下的多线程相关的知识,希望对你有一定的参考价值。

前面两篇文章都讲述了Linux环境下的多线程编程基础知识,也附带了典型实例。本文主要比较一下Linux环境与Windows环境下的多线程编程区别。

  看待技术问题要瞄准其本质,不管是WIN32、Linux还是VxWorks,其涉及到多线程的部分都是那些内容,无非就是线程控制和线程通信,它们的许多函数只是名称不同,其实质含义是等价的,下面我们来列个三大操作系统共同点详细表单: 

事项 WIN32 Linux VxWorks
线程创建 CreateThread pthread_create taskSpawn
线程终止

执行完成后退出;

线程自身调用ExitThread函数即终止自己;

被其他线程调用函数TerminateThread函数

执行完成后退出;

由线程本身调用pthread_exit 退出;

被其他线程调用函数pthread_cance终止

执行完成后退出;

由线程本身调用exit退出;

被其他线程调用函数taskDelete终止

获取线程ID GetCurrentThreadId pthread_self taskIdSelf
创建互斥 CreateMutex pthread_mutex_init semMCreate
获取互斥 WaitForSingleObject、WaitForMultipleObjects pthread_mutex_lock semTake
释放互斥 ReleaseMutex phtread_mutex_unlock semGive
创建信号量 CreateSemaphore sem_init semBCreate、semCCreate
等待信号量 WaitForSingleObject sem_wait semTake
释放信号量 ReleaseSemaphore sem_post semGive

以上是关于多线程编程之Linux环境下的多线程的主要内容,如果未能解决你的问题,请参考以下文章

多线程编程之Linux环境下的多线程

多线程编程之读写锁

转Linux下的多线程编程

Linux下的多线程编程

Linux下的基于Pthread的多线程Socket编程

Linux 多线程编程