![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux开发
程序喵阿呆
道济天下,智周万物
展开
-
有限状态机编程
头文件relay.h#ifndef _RELAY__H_#define _RELAY__H_#include <stdlib.h>#define JOBMAX 10000enum { STATE_RUNNING = 1, STATE_CANCELD, STATE_OVER};struct relay_stat_st{ int state; int fd1; int fd2; int64_t count12, count21;};// retrurn原创 2021-11-07 23:44:17 · 230 阅读 · 0 评论 -
pthread学习--使用条件变量实现信号量
在实际开发过程,可能会控制某个模块所使用的资源,同一时刻只允许某个功能使用一定数量的资源。同样是筛质数,同一时刻只允许同时四个线程进行计算,所以需要使用一个信号量进行总资源的控制,代码如下://mysem.h#ifndef _MYSEM_H__#define _MYSEM_H__#include <pthread.h>//extern struct mysem;struct mysem { int val; pthread_mutex_t mutex;原创 2021-11-05 15:19:49 · 277 阅读 · 0 评论 -
线程学习--pthread--锁链及条件变量
pthread_cond_wait函数的使用,一般跟lock一起用pthread_mutex_lock(&mutex);pthread_cond_wait(&cond,&mutex);等待条件变量满足; 把获得的锁释放掉;(注意:1,2两步是一个原子操作) 当然如果条件满足了,那么就不需要释放锁。所以释放锁这一步和等待条件满足一定是一起执行(指原子操作)。--很重要。 pthread_cond_wait()被唤醒时,它解除阻塞,并且尝试获取锁(不一定拿到锁)。因此,一原创 2021-11-05 14:43:02 · 361 阅读 · 0 评论 -
线程学习--pthread-筛质数
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#include <pthread.h>#define LEFT 40000000#define RIGHT 40000200void *primer(void *arg){ int i = (int)arg.原创 2021-10-27 20:57:44 · 198 阅读 · 0 评论 -
mydeamon--守护进程实例
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>static int deamonize(void){ pid_t pid = fork(); if(pid < 0) { perror("fork()"); exi.原创 2021-10-26 22:33:23 · 119 阅读 · 0 评论