Linux信号量sem_t简单实例运用
来源:互联网 发布:可以画画的软件 编辑:程序博客网 时间:2024/06/05 09:44
sem_t sem;
定义一个信号量变量。使用时需首先使用sem_init()函数初始化。
在多线程编程中,想让某个线程阻塞等待,减少cpu占用,在该需要运行时才运行。使用信号量一个A线程sem_wait(),阻塞等待;一个B线程在需要运行A线程时sem_post(),解除A线程阻塞。
下面是简单demo:
#include <stdint.h>#include <semaphore.h>#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <unistd.h>sem_t sem;void *testfunc(void *arg){ while(1) { sem_wait(&sem); //do something.... printf("hello world...\n"); }}int main(){ pthread_t ps; sem_init(&sem, 0, 0); pthread_create(&ps,NULL,testfunc,NULL); while(1) { //每隔一秒sem_post 信号量sem加1 子线程sem_wait解除等待 打印hello world sem_post(&sem); sleep(1); } return 0;}
2 0
- Linux信号量sem_t简单实例运用
- Linux信号量 sem_t简介
- Linux信号量 sem_t简介
- Linux信号量 sem_t简介
- Linux信号量 sem_t简介
- Linux信号量 sem_t简介
- Linux信号量 sem_t简介
- Linux信号量 sem_t简介
- Linux信号量 sem_t简介
- 信号量sem_t
- 信号量 sem_t
- 信号量sem_t
- Linux 信号量sem_t 简介 (线程)
- 将Linux的信号量sem_t封装成事件对象
- linux c 生产者与消费者问题 信号量(sem_t)
- 信号量sem_t的使用
- linux的ipc信号量简单实例
- sem_t 等相关函数 信号量
- 【LeetCode】Maximum Subarray 解题报告
- 实现简单的信息查询系统(分页和Servlet的运用)
- CSS常用布局之——一列定宽,一列自适应解决方案
- 用VS+Opencv3.1从双目立体视差图中重建三维点云
- C++异常捕捉两种情况-产生前-外层函数中
- Linux信号量sem_t简单实例运用
- Python项目使用memcached缓存
- 关于查询的作业题
- Flask进阶(一)——请求上下文和应用上下文完全解答(上)
- Medium:Find Bottom Left Tree Value
- 实现分页代码
- Java连接数据库步骤
- RNN简介
- 标签命名