Go并发(1)

Go从语言本身支持并发,而不是由某个库或者模块来实现并发,可谓天生丽质。goroutine从根本上与线程不同,goroutine更加轻量化。   看下面这个常见的网络模型:package mainimport ( "fmt" "net" )func...

2015-10-16 15:12:33

阅读数 595

评论数 0

SQL必知必会Note(1-10)

第1章 了解SQL【数据库】保存有组织的数据的容器(通常是一个文件或一组文件)。【表】某种特定类型数据的结构化清单,存储在表中的数据是同一种类型的数据或清单。   在相同数据库中不能两次使用相同的表名,但在不同的数据库中却可以使用相同的表名。【模式】关于数据库和表的布局及特性的信息。【列】表中...

2015-10-15 16:30:53

阅读数 586

评论数 0

计算机程序的构造和解释笔录(2-1):构造数据抽象

现在到了数学抽象中最关键的一步:让我们忘记这些符号所表示的对象。(数学家)不应该在这里止步,有许多操作可以应用于这些符号,而根本不必考虑它们到底代表这什么。                (Hermann Weyl 思维的数学方式)  我们可以通过 define 做过程抽象,将过程看作一类计算...

2015-09-06 16:13:19

阅读数 437

评论数 0

C++泛型 && Java泛型实现机制

C++泛型   C++泛型跟虚函数的运行时多态机制不同,泛型支持的静态多态,当类型信息可得的时候,利用编译期多态能够获得最大的效率和灵活性。当具体的类型信息不可得,就必须诉诸运行期多态了,即虚函数支持的动态多态。  对于C++泛型,每个实际类型都已被指明的泛型都会有独立的编码产生,也就是说lis...

2015-08-28 22:24:16

阅读数 1881

评论数 0

乐观锁与悲观锁

为了得到最大的性能,一般数据库都有并发机制,既然是并发,不可避免的将带来数据访问的冲突。为了解决这个问题,大多数数据库采取了并发控制。乐观锁和悲观锁是并发控制常用的技术手段。下面来看看吧。  乐观锁,顾名思义,就是保持一种乐观精神,它假设多用户并发的事务在处理时不会彼此互相影响,各事务能够在不产生...

2015-08-26 15:45:52

阅读数 1014

评论数 1

线性回归与梯度下降

回归分析是一种统计学上分析数据的方法,目的在于了解两个或多个变数间是否相关、相关方向与强度,并建立数学模型以便观察特定变数来预测研究者感兴趣的变数。更具体的来说,回归分析可以帮助人们了解在只有一个自变量变化时因变量的变化量。 回归分析是建立因变数Y与自变数X之间关系的模型,可以有一个自变量X,也...

2015-08-17 21:16:18

阅读数 1524

评论数 0

计算机程序的构造和解释笔录(1):构造过程抽象

Q: SICP是讲软件工程么?   A:部分,但并非全部。主要是模块化和黑盒抽象,计算机中两大主要基本思想。SICP关心的是:“当系统复杂度爆炸时(或者在此之前),我们如何通过有效的方法和手段去控制系统的复杂度?”    Q: SICP是讲编译原理么?   A: 部分,另外,如同书名说描述...

2015-08-13 20:50:10

阅读数 675

评论数 0

相似图片搜索

前几天在伯乐网上看到有转载相似图片搜索的文章,其实它的方法很简单,就是一篇图片,先做灰度化,resize,01化处理,在判断。出于专业敏感,我想是不是可以利用视频或者图像编码中的DCT变换,利用少量的空间存储大部分的有效信息,然后再比较,网上搜了搜,果然有这样的算法:phash  phash算法有...

2015-08-09 16:44:09

阅读数 690

评论数 0

Quorum/NRW机制

Quorom 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要数学思想来源于鸽巢原理。  什么是鸽巢原理?   其中一种简单的表述法为:   若有n个笼子和n+1只鸽子,所有的鸽子都被关在鸽笼里,那么至少有一个笼子有至少2只鸽子。   另一种为:   若有n个...

2015-08-08 21:52:17

阅读数 1562

评论数 0

两阶段提交协议

集中式与分布式事务的另一个重要的不同点在于它们各自所需关注的错误的属性上。在集中式系统中,错误都是要么不错要么全错(all-or-nothing),也就是说要么系统正常工作事务正常处理,要么系统出错不会有任何事务完成。但是在分布式系统中,可能出现部分失败(partial failures)的情况,...

2015-08-07 22:20:52

阅读数 682

评论数 1

Nginx(2):工作机制

我们知道进程和线程会消耗内存和其它系统资源,同时他们需要进行上下文切换。大多数现代服务器可以同时处理成千上百的进程或线程,但是当内存耗尽时,性能将下降,同时,在高IO负载时,将会出现频繁的上下文切换。   处理网络的常规方法是为每个连接创建一个进程或者线程,这种方式容易实现,但是扩展困难。  那...

2015-08-05 14:30:57

阅读数 687

评论数 0

再论贝叶斯公式

在之前的文章( 贝叶斯方法及其应用(1))中我们谈到了贝叶斯公式,也提到了后验概率 = 先验概率*标准相似度。  那么对于贝叶斯公式P(A│B)=P(A∩B)/P(B) =P(A)(P(B|A))/P(B) ,之前提到如果”可能性函数”P(B|A)/P(B)>1,意味着”先验概率”被增强,事...

2015-08-05 13:36:02

阅读数 662

评论数 0

Bloom Filter(布隆过滤器)

布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制矢量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。   如果想判断一个元素是不是在一个集合里...

2015-08-03 21:17:57

阅读数 806

评论数 0

Linux进程调度机制(1)

进程调度负责决定哪个进程投入运行,何时运行以及运行多长时间。  进程调度:非抢占式和抢占式   Linux这么酷的系统当然是抢占式的喽。  进程在被抢占之前可以运行的时间是预先设定好的,叫做时间片。有效管理时间片能使调度程序从系统全局角度作出调度决定,避免个别进程独占系统资源。I/O消耗型/处理...

2015-08-03 17:08:38

阅读数 1635

评论数 0

阻塞睡眠实现机制

在看阻塞睡眠实现机制前,我们来看一下内核中广泛用到的等待队列。 Linux内核的等待队列为双循环链表结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。它有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项...

2015-08-02 21:56:41

阅读数 1106

评论数 0

数据库系统0T1(0):基础概念

数据库,简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。   数据库存储的基本对象是数据,数据可以是数字、文字、图片、音频、视频等等。数据库的基本特征   数据按一定的数据模型组织、描述和储存   可为各种用户共享   冗余度较小...

2015-07-31 22:29:28

阅读数 866

评论数 0

谈谈闭包

闭包是函数和引用环境组成的整体。   闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。  那么为什么要把引用环境与函数组合起来呢?   这主要是因为在支持嵌套作用域的语言中,有时不能简单直接地确定函数的引用环境。  让我来看Python代码的例子:def add1...

2015-07-30 22:20:38

阅读数 630

评论数 0

设计模式(5): 命令模式

命令(Command)模式:又称Action模式或者Transaction模式。它属于对象的行为模式。   命令模式把一个请求或者操作封装到一个对象中,于是这些命令可以被:   重复多次   取消   取消后又再重做  命令模式的本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开...

2015-07-28 17:15:13

阅读数 470

评论数 0

网页资源下载器

一个简单的python程序,用于下载pdf/txt/ppt等网页资源下载。import urllib import urllib2 import re import socket#######################You may change here###############...

2015-07-28 15:14:42

阅读数 751

评论数 0

STL源码剖析(4):容器(list)

相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。  list 内部为双向链表,内部元素互相以link串接起来...

2015-07-27 11:47:21

阅读数 546

评论数 0

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