自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

缘起宇轩阁

华华的技术专栏

  • 博客(15)
  • 收藏
  • 关注

原创 线程本地存储(Windows和Linux)

一、线程本地存储(Windows, Thread Local Storage)     TLS 是一个机制,经过它,程序可以拥有全局变量,但处于“每一线程各不相同”的状态。也就是说,进程中的所有线程都可以拥有全局变量,但这些变量其实是特定对某个 线程才有意义,各个线程拥有全局变量的一个副本,各自之间不相影响。就是这么一个意思,比如我定义了一个全局变量  int a=10,那么我在线程1中对a进行操作a=a-1,如果我 没用TLS,那么线程2开始获得的a就是9。而如果采取了TLS,不管线程1中对a

2011-05-17 18:48:00 4376

转载 高科技:GDB回溯调试

也许大家知道,GDB 版本7.0 (2009年9月release) 会是第一次开始支持Reversable Debugging (回溯调式技术),这是一种可以让在debug程序时当我们运行单步调试或是运行到断点时,可以以逆向执行程序的一种技术。(这是GNU的新闻链接) 下面是GDB7.0版本所支持的回溯调试的命令,其中包括,continue,step,以及调试方向的设置。 reverse-continue (‘rc’) — 继续程序运行到断点,但是是逆向运行程序。 reverse-finish —

2011-05-12 17:05:00 1635

转载 GDB中应该知道的几个调试方法

七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。 一、多线程调试 多线程调试可能是问得最多的。其实,重要就是下面几个命令: info thread 查看当前进程的线程。 thread 切换调试的线程为指定ID的线程。

2011-05-12 17:03:00 658

转载 如何调试bash脚本

Bash 是Linux操作系统的默认Shell脚本。Shell是用来处理操作系统和用户交互的一个程序。Shell的脚本可以帮助用户自动化地和操作系统进行交互。你也可以理解为一种脚本式的编程。即然有编程,那么,程序的编译器,解释器,调试器就必不可少了,Bash也一样,但在调试方面可能会有一些和编程语言不一样的东西和技术,所以,下面这篇文章主要是说明调试bash脚本的各种技术。 跟踪脚本的执行 你可以让bash打印出你脚本执行的过程中的所有语句。这很简单,只需要使用bash的-x选项就可以做到,下面让我们来

2011-05-12 16:57:00 3496

转载 一些软件设计的原则

以前本站向大家介绍过一些软件开发的原则,比如优质代码的十诫和Unix传奇(下篇)中所以说的UNIX的设计原则。相信大家从中能够从中学了解到一些设计原理方面的知识,正如我在《再谈“我是怎么招聘程序”》中所说的,一个好的程序员通常由其操作技能、知识水平,经验层力和能力四个方面组成。在这里想和大家说说设计中的一些原则,我认为这些东西属于长期经验总结出来的知识。这些原则,每一个程序员都应该了解。但是请不要教条主义,在使用的时候还是要多多考虑实际情况。其实,下面这些原则,不单单只是软件开发,可以推广到其它生产活动中,

2011-05-09 17:00:00 578

转载 可视化的数据结构和算法

还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看看。我把这个页面的目录列在下面并翻译了一下,大家可以直接点击了。 不知道国内的教育有没有相关的教学课件,至少在我大学的时候是没有的。 基础 Stack栈: 数组实现 Stack栈: 链表实现 Queues队列: 数组实现 Queues队列: 链表实现 Lists列表: 数组实现 ( java 版演示) L

2011-05-09 16:30:00 730

原创 no matching function for call to ‘transform

文章得从《C++标准程序库》中的一个源代码说起。今天看到了第11章String,于是敲了书上的源代码,在Ubuntu下一编译,靠,竟然报错了。 STL报错那是什么概念……信息异常混乱啊!于是就直接去Google搜索错误提示关键字了。恩,找到了相关问题,同样也是《C++标准程序库》上的这份代码造成的。 现来看一下代码吧: 错误提示如下: toLower.cpp: In function ‘int main()’: toLower.cpp:28: error: no matching functio

2011-05-08 17:35:00 2407 1

转载 输出从1到1000的数

有这样一个面试题——请把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。更不能写1000个printf或是cout。用C/C++语言。 我相信,大多数人一开始你可能想到的是递归算法: void f(int n){ printf("%d/n",n); (1000-n) ? f(n+1) : exit(0) ; } int main(){ f(1); } 当然,题目中说了不能使用条件语句,所以,上面那种解法的不符合题意的,因为还是变向地使用了条件表达式。不过,我们可以用别的

2011-05-05 18:37:00 1014

转载 打印质数的各种算法

打印质数的算法应该是学习计算机编程的一个经典的问题,在这里想给大家展示一些方法,相信这些方法会对你的编程有一定的启发作用。请你注意几点, 实际应用和教学应用有很大的差别。 最后的那个使用编译时而不是运行时的方法大家可以重点看看。 教科书的示例 首先,先给一个教科书的示例。下面这个示例应该是教科书(至少是我上大学时的教科学)中算法复杂度最好的例子了。其想法很简单,先写一个判断是否是质数的函数isPrime(),然后从1到n分别调用isPrime()函数来检查。检查是否是质数的算法是核心

2011-05-05 18:28:00 807

转载 一些有意思的网站和贴子

各位朋友,又到了介绍各种杂项的时候了,正如以前的这篇和这篇文章一样,本篇文章也给你介绍一些最近出现的一些有趣的东西。希望你能喜欢。 首先是华尔街的一篇报道,2011年最好和最不好的工作,其引用了CareerCast.com的数据,其列出了100个工作种类,并根据薪资、工作环境、工作鸭梨、体力消耗和就业前景做了一个排序。结果排第一位的是“软件工程师”,其理由是:高科技产品的需求呈爆炸式增长,以及人们对iPod、平板电脑、和其它科技产品应用软件的喜好,软件工程师被评为最佳职业。软件工程师有弹性工作时间,

2011-05-05 17:47:00 780

转载 一些有意思的文章和资源

<br />又到了向大家介绍一些最近我在网上发现的有价值的东西的时候了。(下面的链接中很多都被墙)以前向大家介绍过《一些重要的算法》和《算法和数据结构词典》,不过,你知道有些什么样比较奇怪的数据结构吗?wikipedia上的这个词条可以让你看看各种不同的数据结构。比如:Skip lists, Bloom filters,或是什么Dancing links。你也许会像一个以“如何学好C++”中的朋友们所说的,不削于这种所谓的“奇技淫巧”,甚至觉得这太根本不实用。其实,这些东西还是有

2011-05-05 17:17:00 588

转载 140个Google的面试题

某猎头收集了140多个Google的面试题,都张到他的Blog中了,主要是下面这些职位的,因为被墙,且无任何敏感信息,所以,我原文搬过来了。 Product Marketing Manager Product Manager Software Engineer Software Engineer in Test Quantitative Compensation Analyst Engineering Manager AdWords Associate

2011-05-05 16:34:00 3445

转载 再谈“我是怎么招聘程序员的”(上)

我以前写过一篇“我是怎么招聘程序员的”的文章(在CSDN那里有很多人进行了回复)。今天,我想再谈谈关于招聘和面试这方面的东西,主要是以下这些原因: 近半年来我在进行了大量的招聘工作,对面试有一些新的体会。 酷壳最近发布了几篇趣味面试题(面试题一,面试题二,面试题三),从回复中让我有一些思考。 我有一个同事最近面试了一家公司,他和我分享了一个博士专家对他的面试,也让我思考了一些。 在豆瓣上看到“知乎上某人写面试豆瓣产品经理的经历,很欢乐”(亮点是面试官现身知乎亲自作答)

2011-05-05 15:06:00 598

转载 再谈我是怎么招聘程序员的(下)

在上篇中,我们说到了一些认识人的方法(操作,知识,经验,能力),还有一些面试的方法(算法题,实际生产活动中的挑战),下面我们来说说,面试的风格,还有一些点评。 把应聘者当成你的同事 有些公司的面试官,在面试过程中问你一个算法题,然后等着你解答了,如果你给出一个答案,然后就会问你有没有更好的答案,如果你给出了正确的答案,他们就会问你一个更难的问题,如此循环下去。他们基本上很少给你提示,甚至不停地质问你,挑战你,搞得应聘者很紧张。 另外,有很多问题是没有标准答案的,或者说是,同一个答案的描述

2011-05-05 14:59:00 640

转载 人的一生最后悔什么?

有一家杂志曾对全国60岁以上的老人进行了这样一次问卷调查:你最后悔什么?列出了10项人们生活中容易后悔的事情,供被调查者进行选择。 在相关人员对收回的有效问卷进行统计之后,得出了这样的统计结果: 第一名:75%的人后悔年轻时努力不够,导致一事无成。 一 个40岁的人被医师告知患了绝症,最多再活三年时间。因此他为了使自己最后的生命更有意义,拟出一个三年要做十件事的工作计划。其中包括写一本书、学一门外语、搞一项发明、办一个工厂、游30座名山、看50个城市等等,而且计划出后便立即付诸行动。在过了二年零八个

2011-05-03 12:24:00 799

空空如也

空空如也

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

TA关注的人

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