Kingtous' Blog

Keep Hungry, Keep Foolish.

Linux-条件变量

通信

条件变量 与互斥变量不同的是,条件变量可以在保证互斥的同时,实现进程之间的同步。(在条件变量等待的情况下,与其绑定的已经加锁的变量仍然可以被其他进程加锁) 子进程调用条件变量等待父进程 父进程做完操作后,调用条件变量,发出信号表明子进程可以继续操作 子进程继续执行 实现代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1...

Linux-加锁机制

通信

加锁机制 比如一台电脑,人在用的时候,其他人没发用,只有等那个人下位,其他人才能用 实现代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include <pthread.h> #include <stdio.h> #...

Linux-信号量

通信

信号量 可以通过V操作和P操作分别进行发布和等待信号的操作。 与消息队列不同的是,信号量只是一个信号,不传递内容。 消息队列可以取得内容。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ...

Linux-共享内存

多程序共享同一片内存空间

用到的头文件 sys/types.h Sys/shm.h 生产者 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4...

计算机组成原理-知识点随心记

知识点

指令系统 堆栈 push A push B ADD pop C 累加器 LOAD A ADD B STORE C R-S LOAD R1,A ADD R1,B STORE C,R1 R-R 只有store和add能访问内存 LOAD R...

Linux-消息队列

进程通信

利用消息队列机制实现进程之间的通信 打开或创建消息队列对象 int msgget(key_t key, int msgflg) 从消息队列接收消息 int msgrcv(int msqid, struct msgbuf *msgp, int msgsz, long msgtyp, int msgflg); 向消息队列发送消息 int msgsnd(int...

编译原理-文法0123

文法

1,2,3型文法 文法 式子左边 式子右边 1型文法(上下文有关文法) 可以有多个字符,必须有一个终结符 可以有多个有限的字符 2型文法(上下文无关文法) 只能有1个非终结符 可以有多个有限的字符 ...

计算机网络-个人易错知识点积累

日渐消瘦

试题链接 链路层 知识点 计算机网络中存在着三种信道连接模式 点对点 共享信道 信道复用 集线器、网桥、交换机的区别 HUB 所有端口都在同一个广播域,冲突域内。 Switch所有端口都在同一个广播域内,而每一个端口就是一个冲突域。 Router(路...

计算机网络-CRC32校验码

校验码生成

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69...

Linux-线程同步

线程同步

代码记录: 5个人(使用线程模拟)用5支筷子吃饭的问题。 需要解决的问题: 等所有人吃完就终止 防止死锁 使用到的知识: pthread pthread_mutex_trylock 非阻塞尝试加锁,成功返回0 pthread_mutex_unlock ...