![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 83
眷恋0110
这个作者很懒,什么都没留下…
展开
-
线程控制(一)
一、什么是线程 线程有时被称为轻量级进程,是程序执行流的最小单位。线程是进程内部的一条执行序列(执行流),每个进程至少有一条执行序列:main的执行体。进程可以通过线程库创建 N 条线程,这些新创建的线程称之为函数线程, main 函数所代表的线程为主线程。 一个标准的线程由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成。通常意义下,一个进程由一个到多原创 2017-10-27 16:16:47 · 309 阅读 · 0 评论 -
Linux下的网络编程(一)TCP编程
服务器与客户端的概念:服务器: 在一次通讯中,提供数据的为服务器客户端: 在一次通讯中,获取数据的为客户端协议的选择(两种不同的协议有两种不同的编程方式):TCP: 面向连接的(不断发送数据) 可靠的(数据完整,例如银行交易往来数据) 流式服务UDP: 无连接(间断发送数据) 不可靠的(可能会有数据丢失,例如视频数原创 2017-11-03 14:09:52 · 913 阅读 · 0 评论 -
Linux下的网络编程(二)UDP编程
UDP协议(用户数据报协议):它为应用层提供不可靠、无连接和基于数据报的服务。“不可靠”意味着UDP协议无法保证数据从发送端正确地传送到目的端。如果数据早中途丢失,或者目的端通过数据校验发现数据错误而将其丢弃,则UDP协议只是简单地通知应用程序发送失败。因此,使用UDP协议的应用程序通常要自己处理数据确认、超时重传等逻辑。UDP协议是无连接的,即通信双方不保持一个长久的联系,因此应用程序每次发送数原创 2017-11-09 15:26:06 · 312 阅读 · 0 评论 -
TCP协议详解
TCP协议是TCP/IP协议族中另一个重要的协议。和IP协议相比,TCP协议更靠近应用层,因此在应用程序中具有更强的可操作性。 TCP头部信息:16位端口号:告知主机该报文段是来自哪里(源端口)以及传给哪个上层协议或应用程序(目的端口)的。32位序号:一次TCP通信过程中某一个传输方向上的字节流的每个字节的编号,32位确认号:用作对另一方发送来的TCP报文原创 2017-11-04 22:45:38 · 242 阅读 · 0 评论 -
进程间通讯(一)管道
进程间通讯:多个进程之间数据交换。进程间通讯方式:信号、管道、信号量、消息队列、共享内存、套接字(socket)进程创建:pid_t fork进程间数据共享问题: 全局变量、堆、栈 不共享 文件 共享按照信号传送方向与时间的关系,数据通信可以分为三种原创 2017-10-20 12:05:35 · 216 阅读 · 0 评论 -
进程间通讯(二)信号量
为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。什么是信号量:信号量是一个特殊的变量,程序对其访问都是原子操原创 2017-10-22 21:50:25 · 173 阅读 · 0 评论 -
进程间通讯(四)共享内存
一、什么是共享内存 共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址。二、定义#include int shmget(key_t key, size_t si原创 2017-10-26 15:49:23 · 207 阅读 · 0 评论 -
I/O复用的系统调用——select
I/O复用使得程序能监听多个文件描述符,这对提高程序的性能至关重要。I/O复用虽然能同时监听多个文件描述符,但它本身是阻塞的,并且当多个文件描述符同时就绪时,如果不采取额外的措施,程序就只能按顺序依次处理其中的每一个文件描述符,这使得服务器程序看起来像是串行工作的。如果要实现并发,只能使用多进程或多线程等编程手段。Linux下实现I/O复用的系统调用主要有select、poll、epoll原创 2017-11-22 15:22:09 · 375 阅读 · 0 评论