上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 39 下一页
摘要: 僵尸进程处理1)通过忽略SIGCHLD信号,避免僵尸进程 在server端代码中添加 signal(SIGCHLD, SIG_IGN); 2)通过wait/waitpid方法,解决僵尸进程signal(SIGCHLD,onSignalCatch);void onSignalCatch(... 阅读全文
posted @ 2015-03-14 15:22 挨踢人啊 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 1.Socket地址复用int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level, i... 阅读全文
posted @ 2015-03-14 15:07 挨踢人啊 阅读(268) 评论(0) 推荐(0) 编辑
摘要: socket函数#include #include int socket(int domain, int type, int protocol);创建一个套接字用于通信参数: domain:指定通信协议族(protocol family),常用取值AF_INET(IPv4) type:指定... 阅读全文
posted @ 2015-03-14 12:24 挨踢人啊 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 什么是Socket? Socket可以看成是用户进程与内核网络协议栈的接口(编程接口, 如下图所示), 其不仅可以用于本机进程间通信,可以用于网络上不同主机的进程间通信, 甚至还可以用于异构系统之间的通信。 IPv4套接口地址结构 IPv4套接口地址结构通常也称为“网际套接字地址结构”... 阅读全文
posted @ 2015-03-14 12:10 挨踢人啊 阅读(163) 评论(0) 推荐(0) 编辑
摘要: ISO的OSI OSI(open system interconnection)开放系统互联模型是由ISO国际标准化组织定义的网络分层模型,共七层, 从下往上为:OSI七层参考模型物理层(Physical Layer)物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层... 阅读全文
posted @ 2015-03-14 11:50 挨踢人啊 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 常用模型的特点 Linux 下设计并发网络程序,有典型的Apache模型(Process Per Connection,PPC), TPC(Thread Per Connection)模型,以及 select/polL模型和epoll模型。 1 、PPC/TPC 模型 这两种模型思想类... 阅读全文
posted @ 2015-03-11 22:23 挨踢人啊 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 本篇博客定义一套用于TCP通信比较实用/好用Socket类库(运用C++封装的思想,将socket API尽量封装的好用与实用), 从开发出Socket库的第一个版本以来, 作者不知道做了多少改进, 每次有新的/好的想法尽量实现到该库当中来; 而且我还使用该库开发出作者第一个真正意义上的基... 阅读全文
posted @ 2015-03-10 20:54 挨踢人啊 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 在这个多核时代,如何充分利用每个 CPU 内核是一个绕不开的话题,从需要为成千上万的用户同时提供服务的服务端应用程序,到需要同时打开十几个页面,每个页面都有几十上百个链接的 web 浏览器应用程序,从保持着几 t 甚或几 p 的数据的数据库系统,到手机上的一个有良好用户响应能力的 app,为了充分... 阅读全文
posted @ 2015-02-19 19:09 挨踢人啊 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销... 阅读全文
posted @ 2015-02-19 18:15 挨踢人啊 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Posix条件变量int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr);int pthread_cond_destroy(pthread_cond_t *cond);int pthread_cond_w... 阅读全文
posted @ 2015-02-19 18:02 挨踢人啊 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 屏障int pthread_barrier_init(pthread_barrier_t *restrict barrier, const pthread_barrierattr_t *restrict attr, ... 阅读全文
posted @ 2015-02-19 17:51 挨踢人啊 阅读(400) 评论(0) 推荐(0) 编辑
摘要: Posix读写锁int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t *restrict attr);int pthread_rwlo... 阅读全文
posted @ 2015-02-19 17:44 挨踢人啊 阅读(430) 评论(0) 推荐(0) 编辑
摘要: Posix信号量Posix 信号量有名信号量无名信号量sem_opensem_initsem_closesem_destroysem_unlink sem_waitsem_post 有名信号量#include /* For O_* constants */#include ... 阅读全文
posted @ 2015-02-19 17:24 挨踢人啊 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 线程特定数据int pthread_key_create(pthread_key_t *key, void (*destr_function) (void *));int pthread_key_delete(pthread_key_t key);int pthread_setspecific(p... 阅读全文
posted @ 2015-02-19 17:11 挨踢人啊 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 初始化/销毁线程属性int pthread_attr_init(pthread_attr_t *attr);int pthread_attr_destroy(pthread_attr_t *attr);线程分离属性int pthread_attr_getdetachstate(const pthr... 阅读全文
posted @ 2015-02-19 16:52 挨踢人啊 阅读(227) 评论(0) 推荐(0) 编辑
摘要: POSIX线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”开头,要使用这些函数库,要通过引入头文,而且链接这些线程函数库时要使用编译器命令的“-lpthread”选项[Ubuntu系列系统需要添加的是”-pthread”选项而不是”-lpthread”,... 阅读全文
posted @ 2015-02-19 16:33 挨踢人啊 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列/指令序列”; 一切进程至少有一个执行线程;进程 VS. 线程 1.进程是资源分配(进程需要参与资源的竞争)的基本单位,而线程是处理器调度(程序执行)的最小单位; ... 阅读全文
posted @ 2015-02-19 16:20 挨踢人啊 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 实践:实现一个先进先出的共享内存shmfifo 使用消息队列即可实现消息的先进先出(FIFO), 但是使用共享内存实现消息的先进先出则更加快速; 我们首先完成C语言版本的shmfifo(基于过程调用), 然后在此基础上实现C++版本的ShmFifo, 将1块共享内存与3个信号量(1个mu... 阅读全文
posted @ 2015-02-19 16:08 挨踢人啊 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 实践1:信号量实现进程互斥父子进程执行流程如下:父进程子进程PPO(print)X(print)sleepsleepO(print)X(print)VVsleepsleep从图中可以看出, O或X总是成对出现的, 要么两个O, 要么两个X;/**P,V原语实现父子进程互斥使用终端**/// 程序代... 阅读全文
posted @ 2015-02-19 15:58 挨踢人啊 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 信号量API#include #include #include int semget(key_t key, int nsems, int semflg);int semctl(int semid, int semnum, int cmd, ...);int semop(int semid, st... 阅读全文
posted @ 2015-02-19 15:52 挨踢人啊 阅读(302) 评论(0) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 39 下一页