
C语言
文章平均质量分 68
时空旅客er
这个作者很懒,什么都没留下…
展开
-
互斥锁、递归锁、读写锁、自旋锁、条件锁;及pthread实现
共享资源的使用是互斥的,即一个线程获得资源的使用权后就会将改资源加锁,使用完后会将其解锁,所以在使用过程中有其它线程想要获取该资源的锁,那么它就会被阻塞陷入睡眠状态,直到该资源被解锁才会别唤醒,如果被阻塞的资源不止一个,那么它们都会被唤醒,但是获得资源使用权的是第一个被唤醒的线程,其它线程又陷入沉睡。............原创 2022-07-22 10:58:53 · 794 阅读 · 0 评论 -
C11原子操作
在C11标准中,首次引入原子操作。头文件:标准定义了宏,用来在编译时检测是否支持。同时还有一系列宏和函数用来判断各种数据类型在当前的实现中是否支持原子操作,例如:,。同时,标准定义了许多原子数据类型,例如:,。初始化原子变量可以使用如下函数,但不保证原子性(当然一般也不会在多线程中进行初始化)。操作原子变量则使用如下函数,保证原子性:在C11之前,gcc对原子操作的支持是通过builtin函数实现的,即前缀的函数。在C11发布之后,gcc通过提供标准接口。gcc在版本之后才正式、完备的支持stdatomic原创 2022-07-20 16:21:23 · 1065 阅读 · 0 评论 -
C语言volatile关键字,
return0;}return0;;}这个时候,delay函数就起不了效果了,需要使用volatile修饰val;编译器优化对自定义延时程序的影响(volatile详解实验一)转载 2022-07-20 13:22:22 · 387 阅读 · 0 评论 -
c语言 + 汇编 实现原子操作
代码】c语言+汇编实现原子操作。转载 2022-07-20 14:47:18 · 440 阅读 · 0 评论