摘要:
Review:我理解的进程和线程的区别,不对的大家请指正1、进程是系统资源分配的最小单位,线程不是;2、线程必须依赖进程存在,进程不需要;3、线程之间共享内存空间,进程之间不共享,但是进程有自己丰富的通信方式;多线程共存于应用程序中是现代操作系统中的基本特征和重要标志。用过UNIX操作系统的读者知道进程,在UNIX操作系统中,每个应用程序的执行都在操作系统内核中登记一个进程标志,操作系统根据分配的标志对应用程序的执行进行调度和系统资源分配,但进程和线程有什么区别呢?进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:线程的划分尺度 阅读全文
摘要:
学习PHP以来一直希望有时间能够有时间通读PHP手册,最近终于强迫自己划出一些时间,完成了对PHP手册的通读。除了函数参考部分没有每个都看,其他的章节基本上都看过了。看过之后才发现手册解决了自己之前对于PHP的一些模棱两可的认识,对PHP的掌握变的更加的全面和深入。PHP手册分为几个大部分。包括:入门指引、安装与配置、语言参考、安全、特点。实际上为我们解决了什么是PHP?怎么准备PHP的环境?PHP应该怎样写?如何避免PHP代码的风险?PHP的一些特性这几个问题。后续还有函数参考、PHP的核心实现相关的一些话题、PHP的历史等一些内容。读完整个手册后,让我们能够了解到PHP这门语言的脉络 。下 阅读全文
摘要:
平时在Mac下使用XAMPP进行开发,最近需要用到APC扩展,从PECL上下载了扩展的源文件,在本地进行了编译安装。下面是安装步骤。1、首先从http://pecl.php.net/package/APC下载源码包,目前的稳定版本是 3.1.9。2、解压缩后进入到源码目录3、sudo /Applications/XAMPP/xamppfiles/bin/phpize4、sudo MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS 阅读全文
摘要:
Mac Lion的新特性中提到,这次的更新提供了22中新语言支持,但是我们利用浏览器或者文本编辑器进行语音的朗读时,默认都是使用的英文,那么如何让Lion来朗读其他语言呢。Mac 提供了实现这个功能的方法,下面来介绍利用Automator实现朗读不同语言的功能。首先,我们需要在“语音”选项中安装我们需要朗读的语言。上图中这些语言是我已经安装在自己的机器上的,如果大家的没有这些项目,可以点击“自定”菜单在弹出的窗口中选择需要的语言,这时会提示这些语言需要下载。语音文件占用的空间比较大,我选择了中文、台湾、香港三个就用了1G多的空间。然后就等待下载安装完成。接下来,打开Automator这个工具, 阅读全文
摘要:
对于网站来说,速度是第一位的。用户总是讨厌等待,面对加载的Video和页面,是非常糟糕的用户体验。所以如何利用Cache来优化网站,值得深入研究。什么是缓存?缓存是一个到处都存在的用空间换时间的例子。通过使用多余的空间,我们能够获取更快的速度。用户在浏览网站的时候,浏览器能够在本地保存网站中的图片或者其他文件的副本,这样用户再次访问该网站的时候,浏览器就不用再下载全部的文件,减少了下载量意味着提高了页面加载的速度。下面这个图例说明了浏览器和服务器之间如何进行交互。缓存的缺点缓存非常有用,但是也带来了一定的缺陷。当我们的网站发生了更新的时候,比如说Logo换了,浏览器本地仍保存着旧版本的Logo 阅读全文
摘要:
对于分布式网络环境或者有大量任务的应用,我们需要将任务在不同的服务器之间进行分布,这个时候正好是Gearman发挥实力的时候。虽然我们也可以使用MQ队列再加一些自己实现的调度算法来将任务进行分发,但是既然已经有了成熟的产品,为什么不使用下呢。Gearman介绍Gearman提供了一种通用的程序框架来将你的任务分发到不同的机器或者不同的进程当中。它提供了你进行并行工作的能力、负载均衡处理的能力,以及在不同程序语言之间沟通的能力。Gearman能够应用的领域非常广泛,从高可用的网站到数据库的复制任务。总之,Gearman就是负责分发处理的中枢系统,它的优点包括: 开源:Gearman免费并且开源. 阅读全文
摘要:
Boost C++ 库(Libraries)是一组扩充C++功能性的经过同行评审(Peer-reviewed)且开放源代码程序库。大多数的函数为了能够以开放源代码、封闭项目的方式运作,而授权于Boost软件授权条款(Boost Software License)之下。许多Boost的开发人员是来自C++标准委员会,而部份的Boost库成为C++的TR1标准之一。[1] 为了要确保库的效率与弹性,Boost广泛的使用模板(template)功能。而它是针对各式领域的C++用户与应用领域(Application Domain)上,包含的库类从像smart_ptr 库这种类通用库,到像是文件系统的. 阅读全文
摘要:
介绍method_exists和is_callable的区别,提醒大家在实际项目中不要犯错 阅读全文
摘要:
今天终于拜读了著名GFS的论文,大体上的设计思路是明白了,复杂的系统,其实用了很多简单的逻辑在里面,下面是记录的一些笔记: 设计之初(系统需求) 系统使用便宜的PC节点来实现,所以对于监控和容错要求很高。 系统主要目标为提供大于100Mb的文件服务,常见文件为Gb以上,支持小文件,但是不做优化。 系统主要有两种类型的读:持续的流读和随机的跳读。同时还包括大文件、连续文件的写入和追加。 系统必须支持多客户。例如利用生产者-消费者队列模型或者其他的方法。 网路响应时间需要快。 GFS架构 数据的主从模式 Master的任务 Chunk Size的选择(64Mb) Metadata特点:内存存储、C 阅读全文
摘要:
题目要求:有一个四则运算的字符串表达式,编写一个函数,计算四则运算的结果PHP实现:1<?php23/**4*计算四则运算表达式5*/67error_reporting(E_ALL);89$exp='(1+2*(3+5)/4)*(3+(5-4)*2)';10$arr_exp=array();1112for($i=0;$i<strlen($exp);$i++){13$arr_exp[]=$exp[$i];14}15$result=calcexp(array_reverse($arr_exp));16echo$exp.'='.$result;1718fu 阅读全文