Apache默认的是线程安全的prefork,Prefork MPM 使用多个子进程,每个子进程有一个线程,每个进程每次只处理一个请求连接,一个请求出故障后不会影响其他请求,是线程安全的 worker使用的是多进程多线程,每个进程有多个线程,每个线程每次处理一个请求连接,拥有更高的性能,但是是非线程安全的. PHP的官方推荐不适用线程的 mpm,即threaded MPM,因为PHP作为一种胶水语言,将几十种第三方库连接起来构建程序,如果其中有第三方库不能正常工作了,PHP都需要对其进行诊断问题…
apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多中,目前主要有两种模式:prefork模式和worker模式 一.两种模式 prefork模式: prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程.每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大.    这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作方式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程…
Swift与OC两种语法写单例的区别 例如写一个NetworkTools的单例 (1)OC写单例 + (instancetype)sharedNetworkTools { static id instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[self alloc] init]; //这里可以做一些初始化 }); return instance; } (2)Swift写单例 /…
前言:前面文章记录了Service的使用,这次来记录另一个四个组件之一的BroadcastReceiver.主要介绍两种发送和注册广播的区别. BroadcastReceiver广播接收者用于接收系统或其他程序(包括自己程序)发送的广播. 一.注册广播 在android中,我们如果想接收到广播信息,必须自定义我们的广播接收者.要写一个类来继承BroadcastReceiver,并且重写其onReceive()方法,实现接收到特定广播所要做的事情. 这是一个自定义的广播接收者: public cl…
prefork模式 这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作方式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程兼容性问题的系统.它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求. 这个MPM具有很强的自我调节能力,只需要很少的配置指令调整.最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小. worker模式 此多路处理模…
当我们变更网站域名,或者申请多个域名指向一个网站的时候,这个时候我们就会用到域名跳转(或者叫域名重定向redirect.域名转向).下面用最简单的文字讲两种apache的域名跳转方法. 假设我们想把www.old.com转向到www.wxsbbs.com. 1.用php域名跳转在apache里给不同的域名建立不同的虚拟主机.分别对应 www.old.com 与www.wxsbbs.com. 然后在www.old.com的目录里面建立一个index.php文件,文件内容如下:<?phpheader…
Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下: public class LockTest { public static void main(String[] args) { final Outputter1 output = new Outputt…
相信好多人一定会对collectionView和tableView的两种cell出列方法有所疑问,下面以UICollection为例子进行举例说明 假设我们已经创建了一个collectionView,下面的1和2到底有什么区别呢 #define COLLECT_CELL_ID @"collectionCellId" 1.[self.collectionView dequeueReusableCellWithReuseIdentifier:COLLECT_CELL_ID]; 2.[sel…
4.程序员写的Action可采用哪两种方式? 第一.实现Controller接口第二.继承自AbstractCommandController接口 5.springmvc与struts2的区别? 第一.springmvc入口servlet,struts2入口为filter第二.springmvc-action单例,struts2-action多例第三.springmvc以方法参数形式收集值,struts2以类形式收集值第四.springmvc的结果先绑定于ModelAndView中,再放入req…
面试时,可以回答(一般答前4条就行): GET参数通过url传递,POST放在request body中 GET请求在url中传递的参数是有长度限制的,而POST没有 GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息 GET请求参数会给完整保留在浏览器历史记录里,而POST的参数不会被保留 GET请求只能进行url编码,而POST支持多种编码方式 GET请求被浏览器主动cache,而POST不会,除非手动设置 GET产生的url地址可以被bookmark,而POST…