自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

h17802535087的博客

算法小白

  • 博客(12)
  • 资源 (9)
  • 收藏
  • 关注

原创 MySQL实战45讲笔记(一)

1.MySQL语句的一生:(1)使用MySQL,首先要干什么呢,当然是建立连接,命令:mysql -h ip -u user -p password -P port然后后台验证你密码账号都合适,且有权限就会让你登陆进去了。(这谁干的事情,连接器!)这里有一个问题,若你登录进去之后,管理员取消了你的权限你会掉线吗?答案是不会,当你退出再次连接之后管理员对你的权限操作才会生效。这里...

2019-12-25 16:37:05 237

原创 web服务器开发

#http_conn.h //负责状态码,读写缓存区等的定义声明。​#ifndef HTTPCONNECTION_H_#define HTTPCONNECTION_H_#include<unistd.h>#include<iostream>#include<sys/types.h>#include<fcntl.h>#includ...

2019-06-06 20:39:56 723

原创 Reactor模式,Proactor模式,半同步/半异步模式

一:Reactor是这样一种模式:它要求主线程监听文件描述符上是否有事件发生,有的话交由工作线程处理,读写数据,工作连接请求等都交由工作线程完成,主线程不再参与。(以epoll为例)1.主线程向epoll内核事件表中注册socket上的读就绪事件2.主线程使用epoll_wait等待socket上是否有数据可读3.有事件可读时epoll_wait通知主线程,主线程将之放入请求队列4...

2019-04-22 21:20:37 986

原创 多线程详解

当进程为执行任务而多次切换时,必然会产生额外的开销。这时引入一个更小的单位——线程。一个进程里面有多个线程,这些线程也可能会服务于其他进程。例如酷狗播放器的声音处理线程,与爱奇艺的声音处理线程可能为同一线程。线程共享进程的所有信息。线程共享的进程环境包括:进程代码段 进程的公有资源(如全局变量,利用这些共享的数据,线程很容易的实现相互之间的通信) 进程打开的文件描述符 消...

2019-04-19 11:14:02 176

原创 网络I/O模型

本文参考于analogous_love大神的linux网络专栏,以及徐晓鑫女士的《后台开发》一书,十分感谢两位。网络I/O模型,在unp中,斯蒂夫先生将它归为五种:(1)阻塞式I/O(2)非阻塞式I/O(3)多路复用式I/O(4)信号驱动式I/O(5)异步I/O而在徐晓鑫女士的《后台开发》一书中,并没有提及信号驱动式。其中阻塞式是入门级的,就不多讲述了。(2)...

2019-04-17 19:25:27 137

原创 do...while(0)的妙用

总是听闻do...while(0)有妙用,但一直不曾去了解,今日得缘偶见,其可替代功能复杂的宏。effective c++的第一个条例就是用enum,const,union等代替define,为什么define如此令人闻之色变呢?#define f(x,y) x*y的原意是简化调用,当x,y是数字或变量时无碍,但当其是表达式时则相去甚远。例如: f(3,5),这是=符合我们初衷,但若f...

2019-04-17 16:37:09 102

原创 c++小记

1.二维数组的传参问题:(1):在形参中指明第二维维数; 例:void set(int a[][3])(2):一维数组指针作为形参; 例:void set(int (*a)[3])(3):二重指针传参; 例:set (&a);void set(int (*a)[10][10])2.指针引用:*p=10;*&q=p;3...

2019-04-16 09:55:01 142

原创 九宫格

写了一个利用穷举求九宫格的算法,本来是要求三横三竖两对角线,共计八线和都要满足15,但是在if语句之前我们就可以判断除四周之外的其他和,大大的减少其遍历次数。#include<iostream>using namespace std;int check(int a[10]){ if(15!=(a[1]+a[2]+a[3])||15!=(a[1]+a[4]+a[7])||1...

2019-04-16 09:30:34 460

原创 大小端定义及判断

大端,小端又名网络字节序,主机字节序。高位高存,低位低存是小端,复合人们的视觉体验,不用改变位置,如0x0102,在内存的存储位置也是 01 02。而大段相反,复合逻辑,为02 01。如今网络传输,keli5c等使用大端,x86系列使用小段。unp中有一个程序用来判断大小端://endian_check.cpp#include<iostream>using namespa...

2019-04-14 20:46:08 329

原创 “粘包”问题的起因与解决

本文参考于:徐晓鑫女士的《后台开发》(1)因为nagle算法。什么是nagle算法,简而言之是为了避免浪费资源,将包合并发送的算法。就好比你一个人打车必然不划算,可以约几个和你一道的人一起打车,宾主尽欢。但是随之而来的问题是,因为一起发送,故接收方不知道一个包的骑士==起始和截止位置。(2)因为我们网络编程时,其实是将接受到的数据置入缓冲区,待应用层读取,但若应用层阻塞于其他事情而归期未至...

2019-04-14 20:37:12 891

原创 分治算法

/* 2^N个队伍比赛,每支队伍与其他队伍比赛一次, 每天比赛一场,比赛2^N-1天*/当N=0时,结果为1;当N=1时,结果为1   2                          2   1;当N=2时,结果为  1    2    3    4                            2    1    4    3                            ...

2018-04-19 18:18:19 196

原创 位优化快速幂

已知X和N的值,求X^N的值。第一种方法,直接调用pow函数:double a:a=pow(X,N);第二种方法,写个循环:int a,b=1;for(int a=1;a&lt;=N;a++)    b*=X;第三种方法,位优化;example:求a^156。                156化为二进制就是10011100;而a^156=a^4*a^8*a^16*a^128;是不是恰与156...

2018-04-19 16:43:23 157

http_conn.zip

linux下C++网络编程,师从于steven先生网络编程著作,以及游双先生的高性能服务器开发,徐晓鑫女士的后台开发核心技术

2019-06-06

python核心编程第二版中文

在入门python之后,这本核心技术是深入python不可或缺的手典。

2019-04-15

python基础教程第二版

python基础教程是学习python的人入门必不可少的资料。

2019-04-15

c程序试题汇编

对于学完c语言的同学,一定要用这本书来践行自己的所学。

2019-04-15

c++Gui qt4编程

对于任何有志于gui界面开发的人来说,qt都是必不可少的框架

2019-04-14

笨办法学python

笨办法学python对任何感兴趣python的人来说,都是一本福音

2019-04-14

黑客编程基础

对于任何一个有志于成为黑客的人来说,这本书都是不可获取的好帮手

2019-04-14

空空如也

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

TA关注的人

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