zoukankan      html  css  js  c++  java
  • 多线程编程之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
  • 相关阅读:
    【Lua】LuaForWindows_v5.1.4-46安装失败解决方案
    【C++】指针引发的bug
    【C++】指针引发的bug
    【C++】位操作(3)-获取某位的值
    bzoj1444
    bzoj1758
    bzoj3091
    poj1741 bzoj2152
    bzoj2125 3047
    bzoj3669
  • 原文地址:https://www.cnblogs.com/cyyljw/p/8006832.html
Copyright © 2011-2022 走看看