星期一 进程间通信
进程间通信方式:
- 管道及有名管道:管道可用于有亲缘关系的进程间通信,有名管道还允许无亲缘的
- 信号
- 消息队列
- 共享内存
- 信号量
- 套接字
星期二
共享内存
命令 ipcs
相关函数
shmget(key_t key ,int size ,int shmflg) //key是键值,shmflg是权限(rwx)
char *shmat(int shmid,const void *shmaddr,int shmflg) //返回值是映射回来的地址
shmdt() //
int shmctl( ) //删除共享内存段
消息对列
线程
创建一个线程不需要分配独立的空间,因为线程属于进程,它是进程的基本调度单位
如上图,得出多个线程共享一个进程,所以线程间可以直接进行信息交换
线程函数格式:
pthread_exit() //线程结束
pthread_join() //线程挂起
互斥锁:
只能保证同一时刻只有一个线程可以访问共享资源,但不能保证先后顺序
信号量
信号量的值代表同一时刻有多少个线程访问共享资源
信号量的个数代表有多少个线程参与同步操作
星期三 Linux网络编程
cmd ->ipconfig 可查看ip地址
socket(套接字)既是一种特殊的IO,也是一种文件描述符
tcp协议网络通信
上图的accept是阻塞函数
udp协议网络通信
周四
服务端存储数据(链表)和转发消息
客户端和显示屏完成进程间通信
客户端要与服务器做信息的收发