为了避免数据脏读和幻读等问题,保证数据读写的准确性和安全性,我们在优化数据库的时候使用锁机制。但是在高并发执行的情况下,很多语句要同时读写和访问 数据资源,形成一种等待和竞争的关系。如果出现不默契的情况,死锁就应运而生。大家都想争夺资源,但谁都得不到。死锁会导致系统效率大大降低,而在数据库 为了解决...继续阅读
...为了避免数据脏读和幻读等问题,保证数据读写的准确性和安全性,我们在优化数据库的时候使用锁机制。但是在高并发执行的情况下,很多语句要同时读写和访问 数据资源,形成一种等待和竞争的关系。如果出现不默契的情况,死锁就应运而生。大家都想争夺资源,但谁都得不到。死锁会导致系统效率大大降低,而在数据库 为了解决...继续阅读
...在PHP的生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现。 这些内置实现的物理位置在PHP源码的SAPI目录。这个目录存放了PHP对各个服务器抽象层的代码, 例如命令行程序的实现,Apache的mod_php模块实现以及fastcgi的实现等等。 在各个服务器抽象层之间遵守着相同的约定,这里我们称之为SAPI接口。 每个SA...继续阅读
...引言 我们都听过 cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准去选择缓存框架。在这边文章,我们会去讨论缓存,缓存算法,缓存框架以及哪个缓存框架会更好。 为什么我们需要缓存? 很久很久以前,在还没有缓存的时候……用户经常是...继续阅读
...我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的。PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口)。 PHP总共有三个模块:内核、Zend引擎、以及扩展层。 PHP内核用来处理请求、文件流、错误处理等相关操作; Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机...继续阅读
...SAPI: Server abstraction API,研究过PHP架构的同学应该知道这个东东的重要性,它提供了一个接口,使得PHP可以和其他应用进行交互数据。 本文不会详细介绍每个PHP的SAPI,只是针对最简单的CGI SAPI,来说明SAPI的机制。 首先,我们来看看PHP的架构图: PHP架构图 图1 PHP Architecture SAPI提供了一个和外部通信的接口...继续阅读
...微博短链接就不说了,大家已经都清楚了,如下所示就是短链接: 新浪微博: http://t.cn/zj53cMV 腾讯微博: http://url.cn/4JFnfW 短链接的好处:1、内容需要;2、用户友好;3、便于管理。 如何实现呢,大概有三个步骤: 1、定义一个URL映射算法,可以将长的URL映射成短字符串; 2、使用一个存储(数据库?NoSQL?)来存...继续阅读
...优秀的程序可以使复杂的东西看起来很简单;糟糕的程序让原本简单的东西变得复杂。 优秀的程序不需要加以说明;糟糕的程序需要大量注释。 优秀的程序编写时需要更多时间,但未来花费的时间却更少;糟糕的程序往往花费较少的时间,但会在未来浪费掉更多时间。 优秀的程序需要考虑当前和未来的需求;糟糕的程序只侧重于现在...继续阅读
...Step 1 别抱怨了.准备好漫长的征程,或者晾在一边赏鸟去吧 对于真正希望成为一名优秀的程序员的人,希望成为专家,成为究极人物的人,如果真的值得去做,那么投入十年进去,并不算什么,对吗? 第一步就是吞下这颗子弹。接受这个过程将不止花去十年,而是一生的追求。只因为你想去做它,才去做它。如果一个人不情愿做某事...继续阅读
...小范围的选择一些有用技术,透彻的学习它们,掌握它们。然后不断的扩展这个范围。 理解各种数据结构,包括它们在内存中和在硬盘上的各自表现。 理解各种算法的优点和缺点。 了解你的用户需求。关上电脑,去做你的用户们在做的事。 有准备,有愿望,有能力在任何时候投入到多种技术层面中。你必须知道表象下的技术原理。...继续阅读
...假设你是一名软件专业毕业的本科学子,如何在工作中修炼成为一名有较高职业水准的程序员呢,本文试图总结作者从事15年软件开发工作的感想,希望对有志成为职业程序员的人有所帮助。 注:文章言辞尖刻,乃作者脾气秉性使然,如果你看着有气,就请多多见谅,放下别看了。 程序就是一系列按步骤进行的操作序列,它有好多种级...继续阅读
...