Linux学习
文章平均质量分 71
unnamedfish_kaer
一只大四狗,对于计算机网络,高并发,并行计算,分布式充满着向往
展开
-
linux select学习
记录自己的linux学习之旅。参考文章:http://blog.csdn.net/leo115/article/details/8097143首先大概谈一下对select的理解,select用于检测传入的文件描述符的状态,是一个多路I/O就绪通知的一个方法。select 函数原型:#includeint select(int maxfd,fd_s原创 2015-05-06 10:18:46 · 478 阅读 · 0 评论 -
如何创建守护进程
守护进程 在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。 守护进程,也就转载 2015-09-10 23:00:42 · 669 阅读 · 0 评论 -
Linux进程间通信 共享内存+信号量+简单例子
每一个进程都有着自己独立的地址空间,比如程序之前申请了一块内存,当调用fork函数之后,父进程和子进程所使用的是不同的内存。因此进程间的通信,不像线程间通信那么简单。但是共享内存编程接口可以让一个进程使用一个公共的内存区段,这样我们便能轻易的实现进程间的通信了(当然对于此内存区段的访问还是要控制好的)。共享内存实现进程通信的优点:共享内存是进程通信方式中最快速的方式之一,它的快速体现在,为原创 2015-08-19 16:42:06 · 8395 阅读 · 3 评论 -
linux pthread 多线程操作
简要说明一下进程和线程的区别,以及为何有了进程还需要线程。一句话概括,进程是系统资源分配的最小单位,线程是CPU调度的最小单位。一个进程可以有多个线程,每个线程有自己的堆栈he原创 2015-08-04 12:40:20 · 813 阅读 · 0 评论 -
一个简单的socket客户端和服务端的例子
网络编程中最基础的就是socket的操作,这里记录一下socket的基础操作有哪些,分别是什么作用,最后以一个简单的客户端和服务端例子收尾。socket是什么?socket起源于Unix,秉承着一切皆文件的思想,socket也是 打开 -读写- 关闭 这样的模式的一个实现。socket用于不同主机间进程的通信,而每个进程由 所使用的协议,Ip,端口号,三者决定,有兴趣的可以百度原创 2015-08-01 14:19:01 · 10593 阅读 · 0 评论 -
用信号量和Posix线程操作来实现双线程高速下载
什么是信号量?信号量是一个受保护的变量。对两个或多个进程共享的资源可以提供限制访问的方法。信号量有2个基本操作,一个是释放,一个是获取,如果某个进程获取到了该信号量,并且信号量的值小于等于0时,其它想要获取该信号量的进程,将会被阻塞,知道有进程释放了该信号量,信号量的值加1,才会唤醒被阻塞的某个进程。信号量可以实现线程和进程间的通信,通过它我们可以轻易实现对临界资源和共享资源的原创 2015-08-12 13:56:17 · 1037 阅读 · 0 评论 -
(精辟)socket阻塞与非阻塞,同步与异步,select,poll,epoll
socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做转载 2015-05-20 11:04:55 · 4680 阅读 · 1 评论 -
socket编程中write、read和send、recv之间的区别
一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用。由此网络程序里最基本的函数就是read和write函数了。ssize_t write(int fd, const void*buf,size_t nbytes);write函数将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回-1. 并设置errno变量. 在网络程序中,转载 2015-05-22 21:27:08 · 2525 阅读 · 1 评论 -
(转)Linux进程池的实现
原文地址: http://m.blog.csdn.net/blog/yhc13429826359/39258067通过动态创建子进程(或者子线程)来实现并发服务器的。这样做有如下缺点: 1、 动态创建进程(或线程)是比较耗费时间的,这将导致较慢的客户响应。 2、动态创建的子进程(或子线程)通常只用来为一个客户服务(除非我们做特殊处理),这将导致系统上产生大量的细微转载 2015-06-09 15:20:39 · 918 阅读 · 1 评论 -
一个Linux下C线程池的实现(转)
1.线程池基本原理 在传统服务器结构中, 常是 有一个总的 监听线程监听有没有新的用户连接服务器, 每当有一个新的 用户进入, 服务器就开启一个新的线程用户处理这 个用户的数据包。这个线程只服务于这个用户 , 当 用户与服务器端关闭连接以后, 服务器端销毁这个线程。然而频繁地开辟与销毁线程极大地占用了系统的资源。而且在大量用户的情况下, 系统为了开辟和销毁线程将浪费大量的时间和资源。线程转载 2015-05-31 13:52:13 · 591 阅读 · 0 评论 -
TCP的一些简单记录
主要是记录一下,自己对于所了解的一些知识点。所以上一个tcp报文段的包头的结构吧。一个个解释吧源端口号,目的端口号,2byte一个,这个显而易见,就不多说了。(那么源IP,目的IP呢?那是网络层的事呢,由IP协议负责将这些信息封装进报文段中,成为数据报)序号和确认号一起说明,它们2个合伙用来实现可靠数据传输。首先当我们创建套接字socket的原创 2015-05-22 00:46:47 · 560 阅读 · 0 评论