网络编程
文章平均质量分 70
l_ethan
这个作者很懒,什么都没留下…
展开
-
信号量解决生产者消费者问题
用户进程可以通过操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。信号量是一个变量来表示系统中某种资源的数量。原语是一种特殊的程序段,其执行只能一气呵成,不可被中断。p、v操作p1.s-12.s-1>=0进程继续执行3.s-10进程继续执行3.s+1...原创 2022-07-27 19:13:22 · 2119 阅读 · 0 评论 -
条件变量解决生产者消费者问题
功能等待,调用了该函数,线程会阻塞。当这个函数调用阻塞的时候,会对互斥锁进行解锁,当不阻塞的,继续向下执行,会重新加锁。-功能等待多少时间,调用了这个函数,线程会阻塞,知道指定的时间结束。通过设置条件变量来在没有资料的时候消费者等待生产者来生成。条件变量的类型pthread_cond_t。-功能唤醒一个或多个等待的线程。-功能唤醒所有的等待的线程。......原创 2022-07-27 16:59:01 · 399 阅读 · 0 评论 -
互斥量解决线程同步问题
简介使用互斥量来确保同时仅有一个线程可以访问某项共享资源。互斥量的两种状态已锁定(locked)和未锁定(unlocked)一旦线程锁定互斥量,随即成为该互斥量的所有者,只有所有者才能给互斥量解锁。......原创 2022-07-27 16:18:39 · 254 阅读 · 0 评论 -
进程间的通信方式简介
简介管道是一个在内核内存中维护的缓冲器,这个缓冲器的存储能力是有限的。特点1.拥有读、写操作的能力,匿名管道没有文件实体,有名管道有文件实体,但不存储数据。2.一个管道是一个字节流,使用管道时不存在消息或者消息边界的概念,从管道读取数据的进程可以读取任意大小的数据块。3.单工4.只能用在公共祖先的进程。......原创 2022-07-27 15:42:47 · 157 阅读 · 0 评论 -
I/O多路复用技术
poll是对select缺点进行一个改进(没有解决内核态和用户态转变的问题,只是解决了1024比特位的限制以及不能重用每次都需要重置的问题。rbr红黑树+rdlist双链表。原创 2022-07-26 14:28:16 · 250 阅读 · 0 评论 -
多线程并发服务器
一般情况下,main函数所在的线程我们称之为主线程(main线程),其余创建的线程称之为子线程程序中默认只有一个进程,fork()函数调用,2进程程序中默认只有一个线程,phtread_create()函数调用,2个线程。线程在第三方库中所以需要-phtread或者-lpthread来编译连接。......原创 2022-07-25 19:00:55 · 252 阅读 · 0 评论 -
多进程实现并发服务器
功能回收指定进程号的子进程,可以设置是否阻塞参数某个子进程pid回收当前进程组的任意子进程回收所有的子进程,相当于wait()最常用回收某个进程组的组id的绝对值,回收指定进程组的子进程如回收2组子进程资源传递(-2)进程退出时的状态信息,传入的是一个int类型的地址,传出参数设置是否阻塞阻塞非阻塞返回值返回子进程的idoptions=WNOHANG,表示还有子进程错误,或者没有子进程。...............原创 2022-07-25 16:38:07 · 268 阅读 · 0 评论 -
Socket通信编程
网络中不同主机上的应用进程之间进行双向通信的端口的抽象,是应用程序通过网络协议进行通信的接口。Linux环境下,socket用于表示进程间通信的特殊文件类型。本质位内核借助缓冲区形成的伪文件。可以用文件描述符来引用套接字。..................原创 2022-07-23 17:23:51 · 2050 阅读 · 0 评论