自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 linux下 pulseaudio录音和播放

2.列出所有的音频输入源,其中包括麦克风 Name 即是pa_simple_new函数dev参数。1.安装pulseaudio。1.发送方 测试代码。2.接收方 测试代码。

2023-11-21 18:10:30 1093 1

原创 网络缓冲区的设计

WSASend/WASrecv(异步io) :先注册读写事件(每次都需要调用一次函数),准备一个用户缓冲区,向内核发送一个请求,有数据的时候内核把数据拷贝到用户缓冲区,内核发送一个通知(事件),用户可以从用户缓冲区取出数据。c.中断处理函数将屏蔽中断,发起软中断(避免cpu频繁被网卡中断,使用软中断处理耗时操作,避免执行时间过长,导致cpu没法响应其他硬件中断)f.触发网卡发送,发送成功,触发硬中断,释放sk_buff和ringbuffer内存(tcp对应的是克隆而来的,udp对应的是原始的)

2023-11-07 18:19:50 48

原创 c++线程池实现

b.io密集型(网络io 以及 磁盘 io, 用户态到内核态的切换 ) 2*cpu核心数 +2。a.线程数量继续增加,由于系统资源的限制,不在带来性能的提升,反而带来负担。3.固定多少数量的线程?从任务的类型出发 + cpu核心数。a.cpu密集型(用户态执行) cpu核心数。某类任务特别耗时,严重影响该线程处理其他任务。维持和管理固定数量线程的池式结构。1.为什么要固定线程数量?b.避免频繁的创建和销毁。队列(先进先出+锁)4.为什么用线程池?

2023-11-03 11:19:52 33

原创 reactor模型

2.if(n

2023-11-01 10:09:28 33 1

原创 socket网络编程

需要注意的是,如果服务器频繁出现大量处于TIME_WAIT状态的TCP连接,可能会导致资源浪费。b.避免旧连接干扰:如果新建立的连接使用了相同的源IP地址和端口号,而旧连接还处于网络中,在TIME_WAIT期间会阻止重复的连接请求。如果客户端大量断网(心跳检测期间都没连接上),是不是需要服务器主动断开连接,进行四次挥手,会不会有大量time_wait?c.处理网络延迟和重传:在TIME_WAIT状态期间,可以处理来自对方发送的延迟到达或重传的数据包,以避免数据丢失。出现大量time_wait的原因?

2023-11-01 10:08:45 34 1

原创 io多路复用select、poll、epoll模型

2.epoll水平触发LT(默认触发方式): io缓冲区有数据或有空间写就会一直触发, 不断的通过epoll_wait()返回。参数四:表示在没有检测到事件发生时最多等待的时间,超时时间(>=0),单位是毫秒ms,-1表示阻塞,0表示不阻塞。将需要检测的fd_set集合拷贝内核,如果有io就绪重新设置需要检测的fd_set集合,在拷贝到用户层。参数二:接口的返回参数,epoll把发生的事件的集合从内核复制到 events数组中。就会触发,读:来数据就触发一次,写:写缓冲区从满到有空间才会触发一次。

2023-11-01 10:08:24 30 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除