14_消息队列msg、线程
14_消息队列msg、线程
1.消息队列
消息队列写入一次,存放一个,排排站。
其中数据的type不同,可以取不同type的数据。
举个栗子:
Eg:a添加消息队列,b读取消息队列
a.c:
行号 | 注释 |
---|---|
20 | 设置消息类型,>=1 |
b.c:
行号 | 注释 |
---|---|
21 | 第四个参数是获取的消息队列的类型,0表示所有类型都可获取 |
如果./a三次,就表示在消息队列写入三个hello1,可以./b三次进行获取,当第四次./b时,由于消息队列中是空的,则b在等待。
2.线程
进程:一个正在运行的程序
线程:进程内部的一条执行路径
pthread_create(); //创建线程
pthread_exit(); //退出线程
pthread_join(); //合并线程
Eg:主线程和一个子线程一起跑
main.c
行号 | 注释 |
---|---|
30 | 等待子线程结束 |
注意编译时要加库中的-lpthread
Eg:
main1.c:
Eg:达到加到5000个
main2.c:
(用pv)
(同一个代码,用互斥锁)