
读书笔记
文章平均质量分 75
DrawnBreak
这个作者很懒,什么都没留下…
展开
-
Spring揭秘学习笔记之BeanFactory容器原理
官方关于IOC的参考图:它会以某种方式加载Configuration Metadata(通常也就是XML格式的配置信息)然后根据这些信息绑定整个系统的对象,终组装成 一个可用的基于轻量级容器的应用系统。Ioc启动过程总共分为2个阶段:容器启动和实例化阶段。并且在这里2个阶段中,加入了足够多的可扩展点。容器启动阶段:从图里可以看到, Ioc从配置中将需要加载的元素映射成BeanDefintion, 并一一注册到BeanDefinitionRegistry中。实例化阶段(简单版)当某个原创 2020-12-01 23:56:00 · 336 阅读 · 0 评论 -
图解Spark和mapreducer在shuffle时的区别
书中以经典的wordCount为例子wordCount就是计算文本中a-z字母的个数,利用分布式计算的能力mapreduce做wordCount标红的地方就是关键点, mapreducer做map后直接落盘了, 落盘后进行排序,排序完取出相同键的组发送,到resultTask做聚合计算。其实不太懂mapreduce早期为什么这么做,是因为那时候还不知道怎么在内存和磁盘间切换吗?早期spark的wordCount计算标红的地方是一个关键点。map后优先根据key存到内存中, 并拆成1个个bu原创 2020-12-01 00:22:40 · 237 阅读 · 0 评论 -
Spring揭秘学习笔记之BeanFactory
上一个笔记链接Spring Ioc容器体系除了IOC serviceProvider,还包括其他的东西。图上可以看到除了IocProvider, 还包括了AOP、线程管理、周期管理之类的。Spring提供2种容器 BeanFactory和ApplicationContext区别:BeanFactory: 延迟化加载。适合轻量级场景ApplicationContext: 给予BeanFacotry构建, 除了支持BeamFacotry所有功能,还提供了其他特性)Applicati原创 2020-12-01 00:07:52 · 205 阅读 · 1 评论 -
APUE读书笔记——高级进程通信(管道)
假设我们要将一个文件的数据,通过more程序来显示但不希望建立临时文件, 即先复制整个文件,再用more来展示我们可以把文件的数据塞入一个管道, more程序(由子进程excel启动)读这些数据,并显示在屏幕上和直接more一个文件有啥区别???#include "apue.h"#include <sys/wait.h>#define DEF_PAGER "/bin/more"...原创 2018-02-24 21:45:35 · 324 阅读 · 0 评论 -
MYSQL快速复习笔记
显示当前所有的可用数据库SHOW DATABASE; 显示当前数据库内可用表SHOW TABLES ;显示某个表中的所有属性信息SHOW COLUMNS FORM 表名SHOW STATUS 显示广泛的服务器状态SHOW CREATE DATABASE/TABLE 显示创建库或表的SQL语句是啥SHOW GRANTS 显示授权用户SHOW ERRORS SHOW WARNINGS 显示服...原创 2018-02-25 00:20:58 · 387 阅读 · 0 评论 -
《C++ Primer》读书笔记 第二章——变量、引用、指针、常量和类型
(写在前面:该读书笔记摘录C++ primer中需要注意的知识点,是普通大学课程里或者常见面试题里比较少提到的知识点)数据类型:★long double 是96或128比特★char与 signed char不一样, 实际上char表示为有符号还是无符号取决于编译器因此不要用char去做运算,而应该做比较★执行浮点数计算一般直接用double, 速度不比float慢,而且尽量不要用long do...原创 2018-04-17 00:09:51 · 250 阅读 · 0 评论 -
《C++ Primer》 读书笔记第3章——字符串、vector、迭代器和数组
string:★不要在头文件中使用using namespace std★getline中不会存入换行符,但会在遇到换行符结束★string的size()函数返回值是size_type类型,无符号的所以如果size()<-5, 则-5被转换成无符号,则是一个很大的数字★“abc”+"def"是错的, string类型的 s + “def”是对的★cctype头文件中有一堆函数,能够判断一个字...原创 2018-04-17 00:11:43 · 231 阅读 · 0 评论 -
《C++ Primer》读书笔记第五章——语句
语句大部分都了解,所以摘录的点不多switch 的case标签必须是 “整型常量表达式”2个case标签不能相同几个标签执行相同操作: case 1: case 2: case 3: fun(); break;或者 case 1:case 2:case 3:fun();break;不允许出现这种情况case 1: 定义并“...原创 2018-04-19 00:06:26 · 318 阅读 · 0 评论 -
【读书笔记】《少有人走的路》之自律
正如书中所说,人生遇到的问题太多了,所以逃避的人也很多,他们无法控制自己去面对这些问题和痛苦。有的选择拖延,有的选择放弃,并持续地延长了下去。要解决的办法就是自律。而作者所说的自律,不仅仅是常见意义上的那种自律,更是心理层面的一种自律。要简单总结的话,就是:推迟满足感,能够让我们拥有解决问题的时间。承担责任,能够让我们拥有解决问题的勇气。忠于事实,能够让我们拥有解决问题的正确思路。保持平衡,能够让...原创 2018-04-30 17:14:39 · 556 阅读 · 0 评论 -
Unix高级编程《APUE》读书笔记——思维导图形式
终于看完unix高编了,试着利用XMind去记录看到的知识点,避免遗忘,算是自己的一个尝试吧。后面再补上对代码的思考和笔记。原创 2018-02-17 17:49:23 · 1198 阅读 · 2 评论 -
Select、poll、epoll区别
相同点: 都是多路IO复用。 什么是多路IO复用? 即通过一种机制,监视多个描述符,一旦描述符就绪,能够通知程序进行相应的读写操作。 但多路IO复用属于同步IO,需要在读写事件就绪后,自己进行阻塞式的读写。 异步IO:内核负责把数据拷贝到用户空间,不需要调用一个recv在那等待。select的优点: ...原创 2018-03-11 13:55:58 · 268 阅读 · 0 评论 -
UNP读书笔记之 非阻塞connect
下文实现的程序内容是一个web客户端这个客户端向web一次性请求多个图片这些图片并非串行传输,而是同时建立多个连接,在进行传输。这里利用了非负责的connect, 每次connect并进行三次握手时,先直接返回, 然后一系列设置。在main的for循环中, 用select检测那个链接是否可写或可读, 可写时三次握手结束,需要发送“GET HTTP”请求。可读时,指需要读该文件。而且每次只读一次,...原创 2018-03-03 16:57:35 · 309 阅读 · 0 评论 -
APUE读书笔记——线程互斥(互斥量、读写锁)
这里以文件的引用计数做例子。什么是引用计数? 即指向这个文件的链接数。 只有当引用计数为0时,才能删除该文件,否则每一次删除仅仅是i节点的引用计数减一。如果不引入锁, 那么当同时执行两次引用计数相减时,就会出现计数不准确的情况。一、简单的锁操作#include "apue.h"#include <pthread.h>#include <stdlib.h>str...原创 2018-02-23 22:11:05 · 450 阅读 · 0 评论 -
UNP读书笔记第16章 非阻塞IO
继续跟着steven大佬修改 回射程序接着第六章的程序那个程序的大致流程是 先读输入,读完输入再发给服务器,接着等服务器的输入,并输出到屏幕上, 总共四个步骤但是,假如我们一次性输入的数据非常多,大概有10000行,那么就会出现一种情况:当我们正在输入第5000行时, 第一个发出去的行,已经被服务器回射回来了。按理说,这个行应该马上输出但是,他却会卡在中断输入的IO那里(Fgets) ,等Fget...原创 2018-01-22 22:24:28 · 257 阅读 · 0 评论 -
UNP读书笔记 第五章 回射程序的各种改进
本章首先编写了1个服务器回射程序,1个客户发送程序。随后根据各类问题,进行相应的改进。这里记录一下 改进的过程。服务器程序很简单, 大概是以下几步: 创建套接字->绑定地址结构->监听 进入while循环, 做accpet等待连接建立->一旦连接建立成功, 返回一个connecfd套接字, 并fork一个子进程 父进程关闭connecfd套接字,继续进入accpet等待连接 ...原创 2018-01-21 12:16:20 · 221 阅读 · 0 评论 -
UNP读书笔记 第3章 套接字编程简介
IPv4套接字地址结构struct in_addr{ in_addr_t s_addr; //IP地址}struct sockaddr_in{ uint8_t sin_len; //套接字长度,有的版本没有 sa_family_t sin_family; //协议族 in_port_t sin_port; //端口 ...原创 2018-01-18 20:53:40 · 221 阅读 · 0 评论 -
UDP学习笔记——第二章传输层协议简介
★SCTP是流控制传输协议 概念 1.面向消息。 2、提供流,1个流上的消息丢失,不会阻塞后续的消息 3.多宿属性,单个SCTP端点可以支持多个IP地址,类似于链接到一个网络而不是一个主机。 SCTP关联的建立和终止 四路握手 1.客户发送INIT消息,告诉服务器 客户的各种信息,便于初始化 2.服务器发回 INIT_ACK消息,该消息中也包括服务器的各种信息 3.客户发送CO...原创 2018-01-18 14:00:08 · 257 阅读 · 0 评论 -
UNP学习笔记——第一章简介
★UNP一书主要注重于 应用层 和 传输层之间的部分。★包裹函数:大写字母开头,即封装了出错判断和处理,节省了一些代码量★unp.h安装步骤:1.从网络上下载unpv13e.tar文件,这里用的是自己已经修改过的,可以在CentOS上运行,不需要再为一些编译错误去修改。 2.安装脚本,用于服务器如果挂了的话重装unp.h时方便点tar -zxvf unpv13e.tar.gzrm -...原创 2018-01-17 15:44:44 · 442 阅读 · 0 评论 -
APUE学习笔记——线程创建和退出
一、线程的创建这个程序让主进程 启动一个线程, 主进程和线程都打印一次 PID(进程ID)和TID(线程ID)。#include "apue.h"#include <pthread.h>pthread_t ntid;void printids(const char *s){ pid_t pid; pthread_t tid; pid = getpid(); /...原创 2018-02-23 20:54:58 · 306 阅读 · 0 评论 -
APUE读书笔记——线程同步(条件变量,屏障)
什么是同步? 就是让线程之间按照一定的顺序去执行,例如线程A生产了一个物品,线程B才可以去执行消费。为什么不能直接用锁去做同步?例如设定锁X,锁Q线程B要消费一个物品,则对生产队列做检查(先对队列加锁保护),即对X加锁,若X已被锁,则阻塞。即 加锁Q 加锁X 消费 解锁Q 当线程A生产了一个物品时, 将锁X解锁, 线程B唤醒,开始消费。即 加锁Q 生产 解锁X 解锁Q但是这有...原创 2018-02-24 14:16:31 · 301 阅读 · 0 评论 -
UNP读书笔记 第六章 select和poll
先讲了五种IO模型阻塞式IO: readcv系统调用->阻塞->等待系统调用返回非阻塞式IO 系统调用->无数据->不阻塞,直接返回->继续调用直到返回成功这样很浪费CPUIO复用模型 调用select->阻塞->等某个数据准备好->再调用readcv系统调用信号驱动IO模型 调用Signal,等捕捉某个信号时,才调用re...原创 2018-01-22 00:24:31 · 309 阅读 · 0 评论