随笔分类 -  Linux 系统/网络编程

摘要:首先看一个生产者和消费者实例,主线程作为生产者,它先创建很多消费者线程,再给队列中放入产品 #include <bits/stdc++.h> #include <iostream> #include <pthread.h> #include <stdio.h> #include <stdlib.h> 阅读全文
posted @ 2020-09-19 20:59 WindSun 阅读(300) 评论(0) 推荐(0)
摘要:进程的常见状态?以及各种状态之间的转换条件? 创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态 就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运 阅读全文
posted @ 2020-08-26 02:43 WindSun 阅读(1794) 评论(0) 推荐(0)
摘要:一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用。由此网络程序里最基本的函数就是read和write函数了。 write write函数原型: write函数将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回 1. 并设置errno变量. 阅读全文
posted @ 2020-02-11 22:40 WindSun 阅读(1602) 评论(0) 推荐(0)
摘要:前言 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 BSD 和 Mac Os;支持多种 I/ 阅读全文
posted @ 2020-01-02 22:53 WindSun 阅读(9180) 评论(1) 推荐(0)
摘要:前言 早期操作系统通常将进程中可创建的线程数限制在一个较低的阈值,大约几百个。因此, 操作系统会提供一些高效的方法来实现多路IO,例如Unix的select和poll。现代操作系统中,线程数已经得到了极大的提升,如NPTL线程软件包可支持数十万的线程。 I/O多路复用 select select 允 阅读全文
posted @ 2019-09-09 14:08 WindSun 阅读(881) 评论(0) 推荐(0)
摘要:前言 当我们在web浏览器的地址栏中输入:www.baidu.com,具体发生了什么? 概述 1. 对www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址 2. 根据这个IP,找到对应的服务器,发起TCP的三次握手 3. 建立TCP连接后发起HTTP请求 4. 服务器响应HTTP 阅读全文
posted @ 2019-09-09 00:08 WindSun 阅读(8851) 评论(0) 推荐(3)
摘要:信号量 信号量强调的是线程(或进程)间的同步:“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在sem\_wait的时候,就阻塞在那里)。当信号量为单值信号量时,也可以完成一个资源的互斥访问。信号量测重于访问者对资源的有序访问,在大多数 阅读全文
posted @ 2019-09-01 00:57 WindSun 阅读(6340) 评论(0) 推荐(1)
摘要:Linux进程间的通讯 Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限 阅读全文
posted @ 2019-08-31 23:48 WindSun 阅读(2279) 评论(1) 推荐(1)
摘要:前言 几种进程间的通信方式:管道,FIFO,消息队列,他们的共同特点就是通过内核来进行通信(假设POSIX消息队列也是在内核中实现的,因为POSIX标准并没有限定它的实现方式)。向管道,FIFO,消息队列写入数据需要把数据从进程复制到内核,从这些IPC读取数据的时候又需要把数据从内核复制到进程。所以 阅读全文
posted @ 2019-08-31 14:53 WindSun 阅读(612) 评论(0) 推荐(0)
摘要:POSIX消息队列概述 消息队列是Linux IPC中很常用的一种通信方式,它通常用来在不同进程间发送特定格式的消息数据。 消息队列和管道和FIFO有很大的区别,主要有以下两点: 一个进程向消息队列写入消息之前,并不需要某个进程在该队列上等待该消息的到达,而管道和FIFO是相反的,进程向其中写消息时 阅读全文
posted @ 2019-08-31 11:57 WindSun 阅读(1141) 评论(0) 推荐(0)

博客已停更,文章已转移,点击访问