自定义博客皮肤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)
  • 收藏
  • 关注

原创 6.824 Lab4: Cache Locks回顾

在该项目中,server扮演的是分布式文件系统的角色,为了保证consistency,所有client对文件的访问及修改需要首先申请对应资源的锁--每个资源,无论是文件还是目录,都有它自己的id和锁。锁的分配与释放,可以是基于严格一致性(任何时候,用户修改了某个资源,则该资源的最新值是所有用户都可见的)的:用户申请资源时,从lock server获取锁;资源使用完毕后,将锁释放,返回给

2015-06-19 10:35:04 1234

原创 基于TCP的通信为什么需要RETRY

TCP协议本身是可靠的,它的重传机制保证了消息的可送达性(如果没有收到对端的ACK确认,它会在等待一定时间后,尝试再次发送,且这是一个循环过程,上限是9分钟。超过9分钟,则认为连接已经断开,关闭socket)。虽然有了TCP的可靠性保证,但是很多基于TCP的应用间通信依然会采用RETRY机制:发送消息后,如果在一定时间内没有收到对端的确认消息,则重发消息。明明TCP已经可以保证消息的可送达,为

2015-06-14 17:01:53 2585

原创 iOS使用AFNetwork下载总结

本文项目以AFNetwork2.0为基本框架,运行与iOS7及以上。1. 基本下载

2015-02-08 10:05:17 3039

原创 重温JOS

温故而知新,几个点,有必要记一下:1. 在执行C语言对应的程序前(boot loader),汇编部分(entry.S)已经设置好了ebp & esp。如此,C语言执行函数时即有了栈环境。

2015-01-11 20:34:16 1022

原创 App生命周期

图来源于官方。对于Inactive状态的介绍是:对于Background状态的介绍是:Most apps enter this state briefly on their way to being suspended.”对于

2014-11-19 18:26:28 445

原创 UIViewController生命周期

知道UIViewController的生命zhou

2014-11-19 17:03:13 502

原创 谈面向对象 v0.1

面向对象是利用编程解决问题的方式,以我们观察世界的自然视角去抽象问题,从而缩小解决问题所需要的智力负担。既要自然又要抽象,这就需要我们对问题有一个初步贴切全面的认识。随着开发的深入,我们可以在不断试错不断调整的过程中,趋向对问题升入贴切的了解。我们需要把问题切割成一个个独立的子部分,每一个子部分就是一个对象。每个对象都有它自己的一些属性,我们将这些属

2014-11-19 14:57:25 578

原创 mysql memos

1. Connect mysql with root priviledge:   $mysql -u root -p2. Then create database;3.  Grant priviledge to selected users:  grant create,drop, select, insert, update, delete on database.table to us

2013-10-13 20:55:40 445

翻译 Windows下Signal(HANDLE)资源分配失败

默认情况下, Windows可提供给用户的系统资源HANDLE(例如Signal)的数量是有上限的, 约是16M左右.这个数量是固定不可变更的, 因为微软认为这个上限足够大了.详见Mark Russinovich的博客http://blogs.technet.com/b/markrussinovich/archive/2009/09/29/3283844.aspx另外,

2013-08-30 17:58:08 503

原创 读 "Effective STL" 笔记

C3@Associative Container 在STL中有两种“相等”:一种是algorithm::find()所定义的相等,基于operator==()实现;另一种则是std::set/map所定义的相等,基于operator 当然,利用operator !operator 最后,当容器中存储的是你声明的Class时,记得定义自己的operator==(), oper

2013-06-22 15:48:19 852

原创 对字节流套接口read的重新认识

关于readn函数的封装:毫无疑问,我对read的误解直接导致了我对封装函数readn的误用。read(sockfd, buffer, len)的 功能是返回缓冲区中的内容,以len为上限。如果有字节被读出,ret为正; socket断开则ret为0; 出现错误,则ret read理解为不尽职的读取函数,它只是一次读取缓冲区内一部分内容,即便缓冲区内已有的内容小于l

2010-03-18 17:30:00 474

空空如也

空空如也

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

TA关注的人

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