| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> c语言跨平台互斥锁封装 -> 正文阅读 |
|
[开发工具]c语言跨平台互斥锁封装 |
在做多线程开发时,互斥锁是必不可少的。但c语言不像c++11有标准的线程库,在各种编译器支持的平台都可以使用。而且跨平台开发中,在业务逻辑里写不同平台的兼容代码,容易造成过多的冗余,以及代码结构过于复杂的问题。为了提供一种统一的调用方式,封装一套跨平台的互斥锁还是有必要的。 一、接口设计: 1、数据结构: 使用宏区分平台,在Windows用winapi其他平台用pthread。为了灵活内存选择策略,直接定义字段在头文件,不采用pimp的方式。
2、方法 (1)、初始化 互斥锁对象使用前需要初始化,传入互斥锁对象的指针。
(2)、反初始化 互斥锁对象销毁前需要反初始化,传入互斥锁对象的指针。
(3)、加锁 进入互斥锁,多线程环境中调用此方法,第一个线程进入锁的后,其他线程会进入等待状态,直到解锁为止,其他线程才能进入。
(4)、尝试加锁 尝试进入锁而不等待,直接返回,返回1进入成功,0进入失败。
(5)、解锁 执行完成互斥操作后,需要调用解锁退出,将资源让出给其他线程使用。
二、使用例子
三、完整代码 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 4:26:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |