linux c语言定时记录事件,linux c可否实现用户自定义事件

linux c能否实现用户自定义事件?

linux c中能实现类似java、c#中的自定义事件吗?例如两个线程A、B

A线程:往队列中写数据

B线程:从队列中读数据

c能否实现一旦队列中有数据就触发一事件告诉线程B,让B取数据,而不是让B写成死循环不停的监控队列?

什么方法能满足以上需求呢?能给个小例子更好。

Linux

C

多线程

事件

触发

分享到:

------解决方案--------------------

1 信号机制

2 回调函数,A线程有数据了,回调启动B线程读数据

------解决方案--------------------

线程之间本来就很容易可以通信,注意同步别出错就ok了

------解决方案--------------------

仅供参考//循环向a函数每次发送200个字节长度(这个是固定的)的buffer,

//a函数中需要将循环传进来的buffer,组成240字节(也是固定的)的新buffer进行处理,

//在处理的时候每次从新buffer中取两个字节打印

#ifdef WIN32

#pragma warning(disable:4996)

#endif

#include 

#include 

#include 

#ifdef WIN32

#include 

#include 

#include 

#define  MYVOID             void

#define  vsnprintf          _vsnprintf

#else

#include 

#include 

#include 

#define  CRITICAL_SECTION   pthread_mutex_t

#define  MYVOID             void *

#endif

//Log{

#define MAXLOGSIZE 20000000

#define MAXLINSIZE 16000

#include 

#include 

#include 

char logfilename1[]="MyLog1.log";

char logfilename2[]="MyLog2.log";

static char logstr[MAXLINSIZE+1];

char datestr[16];

char timestr[16];

char mss[4];

CRITICAL_SECTION cs_log;

FILE *flog;

#ifdef WIN32

void Lock(CRITICAL_SECTION *l) {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值