多线程两种同步方式的操作方法分析

在线程对共享相同内存操作时,就会出现多个线程对同一资源的使用,为此,需要对这些线程进行同步,以确保它们在访问共享内存的时候不会访问到无效的数值。
以下是线程的几种同步方式:
1、 互斥量。
通过使用pthread的互斥接口保护数据,确保同一时间只有一个线程访问数据。互斥量从本质上讲是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。如下例所示,就是互斥量对共享数据的操作:
}
2、信号量
该信号量是posix提供的基于内存的信号量,它们由应用程序分配信号量的内存空间。如下例所示,就是信号量对共享数据的操作:
#include
#include
#include
int value = 5;
sem_t sem1,sem2;
void mainshow();
void *mythread();
int main()
{
int retval;
pthread_t tid;
retval = sem_init(&sem1,0,0);
retval = sem_init(&sem2,0,1);
retval =pthread_create(&tid,null,mythread,null);
mainshow();
pthread_join(tid,null);
printf(“value3 = %d\n”,value);
return 0;
}
void *mythread()
{
int retval;
retval = sem_wait(&sem1);
value = value + 1;
printf(“value1 = %d\n”,value);
retval = sem_post(&sem2);
pthread_exit((void *) 0);
}
void mainshow()
{
int retval;
retval = sem_wait(&sem2);
value = value + 1;
printf(“value2 = %d\n”,value);
retval = sem_post(&sem1);
}


光伏电站电能质量监测可使用16位SC1467,兼容AD7906
动力电池大模组专用导热结构胶
Level2层VCU架构的功能安全设计
如何让残障人士在互联网世界得到公平和平等?
移动互联时代专属人工耳蜗科利耳N7声音处理器----一机掌控,高效管理
多线程两种同步方式的操作方法分析
苹果秋季第三场发布会,除了M1处理器还有新一代MacBook Air
打破偏远地区医疗瓶颈的局限——数字化听诊
英创信息技术EM9X60利用串口实现ISO7816介绍
基于PEDOT触控技术以提升驾驶体验
颜值与实力成正比!卡萨帝空气场景带来超5成高端份额
PIC单片机的应用设计技巧
微软自研芯片,加速!
测量SiC MOSFET栅-源电压时的注意事项
TCL将在香港推出新款Palm手机搭载骁龙435支持IP68级防水防尘
英特尔中国率先站出?称和华为紧密合作
UPS设计:挑战与考量
BMS_SOH算法模块-在线离线估算模块(模型)介绍
10倍变焦,潜望式镜头大热 或成未来智能手机标配?
什么是Windows CE,LynxOS是什么操作系统