自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 数据结构:堆创建&堆插入&堆删除

一、堆 1.定义 有一个集合,K={K0,K1,K2,……Kn-1},把这些数按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki<=K2*i+1且Ki<=K2*i+2(Ki>=K2*i+1且Ki>=K2*i+2)i=0,1,2……,则称这个堆为最小堆(或最大堆)2.堆结点的特性 堆存储在下标为0开始计数的数组中,因此在堆中给定下标为i的结点...

2018-05-23 16:44:19 1716

原创 linux:读写锁

一、读写锁是什么? 读写锁其实还是一种锁,是给一段临界区代码加锁,但是此加锁是在进行写操作的时候才会互斥,而在进行读的时候是可以共享的进行访问临界区的 ps:读写锁本质上是一种自旋锁二、为什么需要读写锁? 有时候,在多线程中,有一些公共数据修改的机会比较少,而读的机会却是非常多的,此公共数据的操作基本都是读,如果每次操作都给此段代码加锁,太浪费时间了而且也很浪费资源...

2018-05-18 19:51:02 17251 5

原创 linux:套接字编程 (单连接/多进程版本/多线程版本) TCP代码的实现 netstat -anp|grep xxx 命令

1.实现服务器与客户端之间的通信,客户端给服务器发送消息,服务器的作用是把客户端发给自己的消息再给客户端发送回去 服务器端#include<stdio.h>#include<stdlib.h>#include<string.h&am

2018-05-14 22:56:22 617

原创 linux:套接字编程 UDP

套接字编程在TCP/IP协议中,IP地址+端口号—->唯一的标识一个进程 IP地址+端口号就是套接字,套接字编程就是两个进程分别有自己的socket,这两个进程的socket组成一对,就唯一的标识了这两个进程之间的连接,然后就可以进行相互的通信了1.实现一个客户端给服务器发送消息,服务器的作用就是回显客户端发给自己的消息server.c (服务器端)#include...

2018-05-14 22:42:34 752

原创 sockaddr & sockaddr_in & IPV4地址 & IPV6地址 & inet_addr & inet_ntop & inet_pton & inet_aton & inet_ntoa

1.IPV4地址用socket_in结构体表示;2.IPV4和IPV6地址类型分别定义为常数AF_INET、AF_INET6;3.IPV4和IPV6在定义时定义为struct sockaddr_in*结构,但是socket API的接口接受struct sockaddr*结构,故在使用地址的时候需要强转为struct sockaddr*jiegou,这样的好处就是可以提高代码的通用性,...

2018-05-13 22:21:29 3105 2

原创 Linux: listen() & socket() & bind() & accept() & connect() & recvfrom()&sendto() & recv()&send()详解

以下函数的头文件:#incldue<netinet/in.h>#include<arpa/inet.h&am

2018-05-11 14:15:23 1681

原创 IP地址&端口号&TCP协议&UDP协议

一、IP地址1.什么是IP地址?IP地址是连接在因特网上的主机的标识符2.IP协议的分类?IP协议有两个版本,分别是IPV4,IPV6ps:基本上提到IP地址时,不特指的话,都是指IPV43.IP地址的大小、格式、分类?(1)IP地址的大小:IP地址是一个4字节,32位的整数(2)IP地址的格式:IP地址是一个32位的整数,但是为了我们便于记忆,通常使用“点分十进制”...

2018-05-11 13:38:40 3186

原创 浅析:B树

1.什么是B树 B树是一种适合外查找的搜索树,是一种平衡的多叉树 2.B树的特点 B树的每个结点包含着结点的值和结点所处的位置 3.一棵M阶(M>2)的B树,是一颗平衡的M路(M数就是孩子的个数,即就是有几路那就有几个孩子)平衡搜索树,可以是空树,或者满足以下的性质: (1)根结点至少有两个孩子; (2)每个非根结点至少有M/2个孩子,至多有M个孩子; (3)每个...

2018-05-06 22:46:28 2306

原创 linux下如何求一个函数的运行时间(C语言实现)

clock()功能:计算某程序从启动到函数调用占用CPU的时间头文件:#include<stdio.h>clock_t clock(void) clock_t:是一种数据类型,是long int类型返回值:该函数返回的是从程序开始运行到调用clock函数时所打的点数 定义两个clock_t变量begin、end,在调用函数之前调用clock函数,在程序...

2018-05-02 20:27:20 6762 9

原创 linux:gcc编译error:“collect2: ld returned 1 exit status” (Undefined reference )

在linux环境下编译一个工程,不管怎样编译,总是出现以下错误:-bash-4.1$ gcc test.c consumers_producers.c/tmp/ccQzS4PV.o: In function `main':test.c:(.text+0x92): undefined reference to `pthread_create'test.c:(.text+0xf2): u...

2018-05-02 17:16:44 73801 2

原创 linux:进程间通信之信号量(semop & semget & semctl & P & V)

1.信号量怎样实现同步互斥? 信号量并不是让进程间能够直接的发送字符串数据,而是通过自身计数器的性质,来完成进程之间的同步互斥(通过使用信号量来完成令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域,临界区域是指执行数据更新的代码需要独占式的执行,而信号量则是让一个临界区同一时间只有一个线程在访问他,即就是说信号量是用来协调进程对共享资源的访问的一种手段)ps:信号量其实就是...

2018-05-01 17:27:17 995

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除