- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 I/O复用之select
I/O复用使程序能够同时监听多个文件描述符 ,能够提高程序的性能。 一、需要使用I/O复用的情况: 1. 客户端程序要同时处理多个socket。 2. 客户端程序要同时处理用户输入和网络连接。 3. TCP服务器要同时处理监听socket和连接socket。 4. 服务器要同时处理TCP请求和UDP请求。 5. 服务器要同时监听多个端口,或者处理多种任务。 Linux下实现I/O复用
2016-07-30 23:01:47 460
原创 死锁的产生及避免
1. 死锁 死锁可以被定义成一组竞争系统资源或互相通信的进程间相互的“永久”阻塞。当一组进程中的所有进程都在等待一个事件,而只有在进程集合中的其他阻塞的进程才可以触发该事件,这时就称一组进程死锁。 2. 产生死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 占有且等待条件:一个 进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件(非抢
2016-07-14 14:20:29 453
原创 Linux信号
一、信号的基本概念 用kill -l 命令可以查看系统定义的信号列表: 1~31号为普通信号,34~64号为实时信号 二、产生信号的条件 1. 用户在终端按下某些键时,终端驱动程序会发送信号给前台进程,例如Ctrl-C产生SIGINT信号,Ctrl-\产生SIGQUIT信号,Ctrl-Z产生SIGTSTP信号。 2. 硬件异常产生信号,这些条件由硬件检测到并通知内核,然后内核向
2016-07-13 15:13:25 385
原创 wait和waitpid函数
当一个进程正常或异常终止时,内核就向其父进程发送一个SIGCHLD信号。因为子进程终止是一个异步事件,所以发生这种信号也是内核向父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。 调用wait或waitpid的进程可能会发生的情况: 1.如果其所有子进程都还在运行,则阻塞 2.如果一个子进程已终止,正等待父进程获
2016-07-09 17:30:12 488
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人