1. 内核同步

主要是防止多核处理器同时访问修改某段代码,或者在对设备驱动程序进行临界区的保护。

  1. 1 .互斥量
  2. 头文件 #include<linux/mutex.h>
  3. 初始化方法:
    1. 静态初始化 DEFINE_MUTEX(name), 动态初始化void mutex_init(struct mutex *lock);
  4. 使用方法:
  5. void mutex_lock(struct mutex *lock)   //尝试着得到互斥量,得不到则进入睡眠,睡眠期间,不能被中断
  6. 2. 信号量

3。  自旋锁

2. 进程/线程间同步机制

常用的同步方式有:原子操作、互斥锁、条件变量、读写锁、文件锁、信号灯。

1. 互斥锁

1. Share Memory共享内存

头文件以及相关函数

#inlcude <sys/shm.h>

void *shmat(int shm_id, const void *shm_addr, int shmflg); 

int shmctl(int shm_id, int cmd, struct shmid_ds *buf); 

int shmdt(const void *shm_addr); 

int shmget(key_t key, size_t size, int shmflg);

3. Message Queues消息队列

头文件以及相关函数

#Include<sys/msg.h>

int msgctl(int msqid, int cmd, struct msqid_ds *buf); 

int msgget(key_t key, int msgflg); 

int msgrcv(int msqid, void *msg_ptr, size_t msg_sz, long int msgtype, int msgflg); 

int msgsnd(int msqid, const void *msg_ptr, size_t msg_sz, int msgflg)

3.线程同步

互斥锁+条件变量

读写锁(区分读写请求)--->文件锁(进一步细分被锁对象的粒度)

最新文章

  1. 【GWAS文献】基于GWAS与群体进化分析挖掘大豆相关基因
  2. 退出系统时跳出frame框架
  3. python load mat 并按变量名赋值
  4. Circle(codevs 3134)
  5. jquery的prop()和attr()
  6. Telnet连接Win7系统被拒绝的原因及解决方法
  7. 【转载】解析提高PHP执行效率的50个技巧
  8. HDOJ 2026 首字母变大写
  9. Python同时向控制台和文件输出日志logging的方法 Python logging模块详解
  10. ZOJ 2412 Farm Irrigation(DFS 条件通讯块)
  11. 解决vagrant up启动失败,停留在Booting VM...过程的方法
  12. vTPM环境部署(ubuntu)
  13. 什么是 stack?- 每天5分钟玩转 Docker 容器技术(111)
  14. [squid] kid1| ERROR: No forward-proxy ports configured.
  15. 7.地图随机装饰,与转化过程补充,与ai的设计思路
  16. USB HID设备报告描述符详解(转)
  17. nginx安装以及调优
  18. ReentrantLock实现原理分析
  19. linux-shell-变量参数
  20. gulp-px2rem-plugin 插件的一个小bug

热门文章

  1. ApiDemo/FragmentRetainInstance 解析
  2. delphi 插入表格HTML代码
  3. 提升 composer 的执行速读
  4. show engine innodb status解读
  5. 关于php配置文件
  6. 主流Jquery弹出框优缺点对比
  7. Android WebView的使用方法总结
  8. 小白日记14:kali渗透测试--NMAP
  9. 计算 MD5值
  10. 接收POst数据流数据