poll and epoll的区别-linux C线程间通信:阻塞-唤醒-创建文件,重启后大小是0

poll and epoll的区别,有些情景poll是不能胜任的
关于动态监测,就是当前监测5个fd, 要增加一个是否可以?
poll是不能正常工作的,比如当前poll正在阻塞,即使新增加的fd有事件发生,仍然阻塞;如果当前解除阻塞,新增的事件会被监测到。
epoll是可以的。


关于动态监测,就是当前监测5个fd, 要减少一个是否可以?
就是close某个文件,poll中监测的还包含关闭的那个文件:这时poll是不能工作的。
epoll是可以的。


poll和epoll有个共同的特点:
如果监听某个事件,但当前进程阻塞在另一个地方,poll/epoll监听的事件是保存在buffer中的,只是如果不需要buffer中的数据就要close监听的文件。
需要时再打开。


linux C线程间通信:阻塞-唤醒
static pthread_mutex_t  mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t   cond = PTHREAD_COND_INITIALIZER;


    pthread_mutex_lock(&mutex);
    pthread_cond_signal(&cond);
    pthread_mutex_unlock(&mutex);


    pthread_mutex_lock(&mutex);
    pthread_cond_wait(&cond, &mutex);
    pthread_mutex_unlock(&mutex);


创建文件,重启后大小是0
文件写入后,长按powerkey重启,文件没有写入,虽然文件创建成功,但大小是0,内容没有写入:
使用fflush无效,重启后看 /data/lost+found并没有发现数据丢失的数据
使用sync()后,是正常的,重启后可以看到文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值