7.11

从逻辑角度来看:(重要区别)多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但是,操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理及资源分配。4、函数调用入栈出栈的过程        函数调用过程中,第一个进栈的是(主函数中的)调用处的下一条指令(即函数调用语句的下一...

2018-07-11 13:55:07

阅读数 20

评论数 0

kafka设计

 kafka的设计初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并需要能够支撑较大的数据量,且具备良好的容错能力.     1、持久性    kafka使用文件存储消息,这就直接决定kafka在性能上严重依赖文件系统的本身特性.且无论任何OS下,对文件系统本身的优化几乎没有可能.文...

2018-07-04 20:04:05

阅读数 38

评论数 0

Kruskal算法

 本文主要讲的是Kruskal算法,这是一种常用的用于寻找最小生成树的算法,由Joseph Kruskal于1956年发表。它是贪心的思想,易于编写,而且效率很高。   何为“最小生成树”呢?在一给定的无向图G = (V, E)中,(u, v)代表连接顶点u与顶点v的边,而w(u, v)代表此边的...

2018-07-03 09:41:38

阅读数 507

评论数 0

最小生成树算法模板

Prim算法  本文主要讲解的是Prim算法,该算法用于寻找最小生成树(MST)。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小。(上一篇博客是Kruskal算法,如果没学过的话建议先移步去学习Kruskal算法)   Prim算法于1930年由...

2018-07-03 09:40:02

阅读数 194

评论数 0

boost::noncopyable

boost::noncopyable 比较简单, 主要用于单例的情况.通常情况下, 要写一个单例类就要在类的声明把它们的构造函数, 赋值函数, 析构函数, 拷贝构造函数隐藏到 private 或者 protected 之中, 每个类都这么干的话会非常地麻烦.但是有了 noncopyable 类之后...

2018-07-02 17:06:20

阅读数 131

评论数 0

move 和浅拷贝等

开始不能理解有了浅拷贝, 何必再有 move现在想通了, 理由如下一个对象只有一个 拷贝构造函数, 你只能要么实现浅拷贝(编译器提供), 要么实现深拷贝.c++11 提供了 move 语义, 这样你就可以同时实现 浅拷贝, 和深拷贝. 然后编译器就能根据对象的用途自动的选择好 move (浅拷贝)...

2018-07-02 15:54:50

阅读数 92

评论数 0

GC和RAII+refcounting

 RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。   RAII 的一般做法是这样的:在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后...

2018-07-02 15:37:56

阅读数 37

评论数 0

TCP拥塞控制

Linux4.9 内核发布了, 包含了 Google 最新发明的 BBR 拥塞控制算法. 一经发布便吸引了大量的眼球. 于是我们这个眼球也不能免俗, 来凑凑热闹吧.传统的 TCP 拥塞控制算法, 都是基于 “丢包” 进行的. 以丢包作为拥塞的信号. 其实有2个严重的问题丢包并不总是拥塞导致的, 也...

2018-07-02 15:33:10

阅读数 43

评论数 0

C++标准库

C++标准库提供了:1、语言特性的支持,内存管理,RTTI等2、单纯用语言难以实现的基本操作,提供一些工具,时间,编译时有理数运算,类型函数,move等3、底层的(“无锁”)并发编程设施4、基于线程的并发编程支持5、基于任务的并发的基本支持,如future和async6、比较难以实现的最优且可移植...

2018-05-07 16:33:19

阅读数 40

评论数 0

Zookeeper介绍

ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布式锁服务。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:配置维护、组服务、分布式消息队列、分布式通知/协调等。注意:ZooKeeper性能上的...

2018-04-24 17:44:55

阅读数 24

评论数 0

Redis 50问

1、什么是Redis?   Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支...

2018-04-22 00:43:05

阅读数 374

评论数 0

Redis

1. 使用redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2) 支持丰富数据类型,支持string,list,set,sorted set,hash(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的...

2018-04-21 23:45:02

阅读数 33

评论数 0

Nginx框架

1.Nginx HTTP框架综述   hander:直接处理客户端的请求,产生响应,是最常用的模块//请求处理   filter:  对hander产生的数据各种加工过滤处理//请求处理   upstream: 实现反向代理功能,转发请求到上游的服务器,从后端获取响应载发回客户端//请求转发   ...

2018-04-21 23:22:02

阅读数 137

评论数 0

C++

指针和引用面向对象的理解staticconstvolatile

2018-04-17 11:42:16

阅读数 29

评论数 0

IPC

进程间通信(IPC)介绍进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进...

2018-04-11 10:22:45

阅读数 63

评论数 0

设计模式

工厂模式   工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式,工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可...

2018-04-09 16:08:35

阅读数 57

评论数 0

操作系统笔记4.9

常见的批处理作业调度算法1.先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。2.短作业优先调度算法(SPF)...

2018-04-09 09:50:24

阅读数 101

评论数 0

Hadoop分布式架构及NoSQL

并行计算是指同时使用多种计算资源解决计算机问题的过程。云计算是分布式技术+服务化技术+资源隔离+管理技术。虚拟化技术包括:资源虚拟化,统一分配监测资源、向资源池中添加资源。分布式产品:Hadoop:HDFS文件系统是一个可扩缩的、容错的、可以在廉价机器上运行的分布式文件系统,是一个NameNode...

2018-04-08 16:44:54

阅读数 99

评论数 0

Database

数据库 表 行 记录:一个数据就是一个记录 SQL:数据库管理系统,结构化查询语言MySQL 数据库(管理+数据)基于C/S架构客户端/服务器服务器独立分布,占用最大的资源。安装MySQL:角色支持,线上,手动配置,支持连接数量不同。3306端口,支持TCP/IP连接。设定默认的字符集。支持多语言...

2018-04-08 15:11:38

阅读数 38

评论数 0

网络编程

同步,异步,阻塞,非阻塞  所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendM...

2018-03-25 23:06:18

阅读数 36

评论数 0

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