表示 进入内容 13
Displaying posts with tag: Programming (reset)
并发编程系列之一:锁的意义

 

背景

 

C/C++语言的并发程序(Concurrent Programming)设计,一直是一个比较困难的话题。很多朋友都会尝试使用多线程编程,但是却很难保证自己所写的多线程程序的正确性。多线程程序,如果涉及到对共享资源的并发读写,就会产生资源争用(Data Race)。解决资源争用,最直接的想法是引入锁,对并发读写的数据进行保护(更高级的则包括无锁编程—— Lock Free Programming)。但是,锁又有很多种类,例如:自旋锁(Spinlock)、互斥锁(Mutex)、读写锁(Read-Write-Lock)等等。这么多的锁,每种锁有什么特点?对应哪些不同的使用场景?使用过程中需要注意哪些事项?各自分别有哪些不足之处?都是困扰程序员的一个个问题。

 

[获取更多]
个人订阅的10佳博客与相关介绍

前段时间,我在微博上分享了自己订阅的博客Feeds,一共有200个左右,内容覆盖多个领域,包括有:Database(MySQL、Oracle、PostgreSQL),Programming,Distributed Systems,Systems 等。俗话说,过犹不及,太多的选择,往往意味着没有选择。在过去的几年,对于自己订阅的所有博客,我基本上做到每天都看,因此对每个博客的内容有了一定的了解。本文,就准备根据个人的经验,从订阅的这200个博客中,挑选出10个出来,并且为每个挑选出的博客,附上个人对其的简单介绍。一来算是对过去的一个归纳与总结,二来也可以帮助大家更好的挑选。

 

声明:这次的挑选,完全是根据自己的经验与喜好,并不算是什么排名。挑选的标准:

  1. 博客更新的频率;
  2. 博客中好文章的比率;
[获取更多]
二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现

问题背景

 

今年的实习生招聘考试,我出了一道二分查找(Binary Search)的题目。题目大意如下:

 

给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7,7]。问题:给定任意自然数,对数组进行二分查找,返回数组正确的位置,给出函数实现。注:连续相同的数字,返回第一个匹配位置还是最后一个匹配位置,由函数传入参数决定。

 

我为什么会出这道题目?

 

  • 二分查找在数据库内核实现中非常重要

[获取更多]
表示 进入内容 13