C\C++ 多线程及加锁解锁

编程入门 行业动态 更新时间:2024-10-24 00:23:09

C\C++ <a href=https://www.elefans.com/category/jswz/34/1767532.html style=多线程及加锁解锁"/>

C\C++ 多线程及加锁解锁

1、为什么用多线程?
并行处理任务,更快获得计算结果。

线程编程步骤:
1 线程id申明:pthread_t pid1;
2 线程创建函数:int ret=pthread_cread(&pid1, NULL, *Fuc, (void *)Fuc_args);
线程创建成功返回值为0,失败返回错误代码。
第一个参数是线程id地址;第二个参数是线程属性,值为NULL时表示使用线程默认属性;
第三个参数是线程函数入口地址(经测试该函数不用非得是空指针函数void * TestIp(void *args)?;
第四个参数是线程入口函数参数地址,1个参数传该参数的地址即可,多个参数用结构体地址来传递;
3 线程回收函数:pthread_join(pthread_t pid, NULL); 以阻塞的方式等待pid线程结束,并回收线程资源。
4 定义线程函数:(类型)Fuc { }

2、为什么加锁?
多线程访问共享资源时,为防止产生脏数据和错误而采取的方式。多线程访问同一个数据库时,数据库是共享资源,所以对库操作要加锁。
举例:1个厕所不能提供多人用,进入厕所加锁,使用完解锁,一个道理。

线程加锁步骤:
1 公共头文件a.h引用线程头文件 #include <pthread.h>
2 声明互斥锁的全局变量
extern phread_mutex_t sql_mutex;
3 宏定义加锁解锁操作
#define SQL_LOCK do{phread_mutex_lock(&sql_mutex);}while(0)
#de

更多推荐

C\C++ 多线程及加锁解锁

本文发布于:2024-03-08 07:34:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720220.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多线程   解锁   加锁

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!