首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

PHP CLI模式下的多进程应用

PHP在很多时候不适合做常驻的SHELl进程, 他没有专门的gc例程, 也没有有效的内存管理途径. 所以如果用PHP做常驻SHELL, 你会经常被内存耗尽导致abort而unhappy. 而且, 如果输入数据非法, 而脚本没有检测, 导致abort, 也会让你很不开心. 那? 怎么办呢? 呵呵, 别着急, 多进程来帮您! 那,这是为什么呢? 优点: 1. 使用多进程, 子进程结束以后, 内核会负责回收资源 2. 使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程. 3. 一个常驻主进程, 只负责任务分发, 逻辑更清楚. Then, 怎么做呢? 接下来, 我们使用PHP提供的POSIX和Pcntl系列函数, 来实现一个PHP命令...
类别:网页编程 - PHP技术    查看:128    更新:2014-05-19

php框架codeigniter是如何实现mvc模式以及单一入口

关于mvc 这里不详细讲解何为MVC模式,只是简单介绍,关于mvc的具体信息可以去网络上找寻,mvc模式在我理解来它将一个项目分解成三部分,分别是Model(模型),View(视图),Controller(控制器),这三个单词的缩写组合即为MVC.MVC是一种普遍的软件敏捷开发模式,在许多领域特别是桌面编程领域早已经得到了广泛的应用,然而在像php一样的脚本语言中比较难以实现,特别是几年前在脚本语言中很难看到mvc的实现,但是今年随着众多框架的涌现,mvc在各个框架中得到了初步实现,其他框架中的实现方式暂且不提,这里只是介绍codeigniter是如何实现mvc的。 关于单一入口 单一入口指在一个网站(应用程序)中,所有的请求都是指向一个脚本...
类别:网页编程 - PHP技术    查看:103    更新:2014-05-19

PHP中文汉字替换与模式匹配的问题

  这两天正在做一个关键字加亮显示的程序,写好的程序在本地测试也跑得好好的,可是一上去页面就出现一堆一堆的乱码,别说加亮了,简直就是没的看!   我就找错误,找来找去,发现英文没有问题,遇到汉字容易出问题,有的时候遇到汉字必出问题。   总结一下:   当使用模式匹配的时候,如:preg_match_all($pat,……)与preg_replace($pat,……)……   容易出问题的情况如下:   preg_match_all("/(汉字)+/ism","我是汉字,看你把我怎么着!",$m_a);   这个模式很简单就是匹配出“汉字”。这种情况模式中包含汉字可以成功匹配出来,但是也不要高兴得太早,结果不确定,为什么不确定你慢慢往下看。&nb...
类别:网页编程 - PHP技术    查看:120    更新:2014-05-19

Java多线程设计模式:wait/notify机制

通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如:synchronized(obj) {while(!condition) {obj.wait();}obj.doSomething();} 当线程A获得了obj锁后,发现条件condition不满足,...
类别:程序开发 - JAVA    查看:110    更新:2014-05-15

Java的多进程运行模式分析

一般我们在java中运行其它类中的方法时,无论是静态调用,还是动态调用,都是在当前的进程中执行的,也就是说,只有一个java虚拟机实例在运行。而有的时候,我们需要通过java代码启动多个java子进程。这样做虽然占用了一些系统资源,但会使程序更加稳定,因为新启动的程序是在不同的虚拟机进程中运行的,如果有一个进程发生异常,并不影响其它的子进程。在Java中我们可以使用两种方法来实现这种要求。最简单的方法就是通过Runtime中的exec方法执行java classname。如果执行成功,这个方法返回一个Process对象,如果执行失败,将抛出一个IOException错误。下面让我们来看一个简单的例子。// Test1.java文件import java.io.*; public class ...
类别:程序开发 - JAVA    查看:108    更新:2014-05-15

DAO设计模式之事务界定

前面说过, DAO 不负责处理事务、会话或连接,而把这交给一个工具类,封装所有关于数据库的操作。把Session的获取,语句的关闭等放在这个类更好。通常的设计把数据 库的代码放到DAO的实现类中,这样如果某个DAO实现类设计不良,要改动就必须牵涉到很多地方,不利于维护。在这里的工具类代码如清单6。 清单 6. public class HibernateUtil { private static Log log = LogFactory.getLog(HibernateUtil.class); private static final String INTERCEPTOR_CLASS = "hibernate.util.interceptor_class"; private static Configuration configuration; private static SessionFactory sessionFacto...
类别:程序开发 - JAVA    查看:113    更新:2014-05-14

使用PB调用API自动更新(非FTP模式)

一、STRUCTURE定义 1、s_filetime global type s_filetime from structure long dwlowdatetime long dwhighdatetime end type 2、s_win32_find_data global type s_win32_find_data from structure long dwfileattributes s_filetime ftcreationtime s_filetime ftlastaccesstime s_filetime ftlastwritetime long nfilesizehigh long nfilesizelow long dwreserved0 long dwreserved1 character cfilename[255] character calternatefilename[14] end type 3、s_netresource global type s_netresource from structure long dwScope long dwType long dwDisplayType long dwUsage string lpLocalName string lpRemoteName str...
类别:程序开发 - PowerBuilder    查看:122    更新:2014-05-12

利用ColdFusion组件实现状态模式

ColdFusion MX中ColdFusion组件(CFCs)的引入,开启了在CF中面向对象编程的新篇章。在应用开发人员和程序员开始思考面向对象编程(OOP)时,总会提到设计模式的概念。在这样的背景下,本文中我们将讨论一下状态模式:它的目的是什么,可以解决什么问题,以及如何利用CFCs实现。同时,本文这里包含了一些示例代码。你还可以从此文的下载版中得到这些代码。问题描述首先,我们来看一个问题,这个问题可能会使我们考虑用状态模式作为解决方案。在我的例子中,我将创建一个简单的内容管理系统,系统中的内容项可能包含这样几个状态:起草、预览、等待发行许可、已发行。内容项还可以包含多个要执行的方法:保存、许可该项、拒绝该项...
类别:程序开发 - ColdFusion    查看:111    更新:2014-05-10

图层混合模式之浅析

本文是针对一些还对图层混合概念模糊的朋友所做的一个小实验,目的在于能够让这些朋友们更能直接了解图层混合模式的作用,因为本文用的是白与黑之间的颜色进行实验的,所以图层混合模式中的溶解、变暗、变亮、点光、色相、饱和度、颜色、亮度这几种混合模式无法实现。1、正常编辑或绘制每个像素,使其成为结果色。这是默认模式。(在处理位图图像或索引颜色图像时,“正常”模式也称为阈值。)   2、正片叠底查看每个通道中的颜色信息,并将基色与混合色复合。结果色总是较暗的颜色。任何颜色与黑色复合产生黑色。任何颜色与白色复合保持不变。当用黑色或白色以外的颜色绘画时,绘画工具绘制的连续描边产生逐渐变暗的颜...
类别:平面设计 - PhotoShop    查看:121    更新:2014-05-10

两权分立的FTP工作模式

工作环境:ADSL---(219.154.214.150)NAT(10.41.221.2)-----PC(10.41.221.6/FTPSERVER)1、映射21端口到PC,PC安装FTP服务serv-u,用serv-u是因为他可以方便的设置FTP的两种工作模式。外网发起连接为例。PORT方式能连接,不能列目录PASV方式能连接,不能列目录分析:FTP支持两种模式。这两种模式被称为“标准”(或PORT,或“主动”)和“被动”(或PASV)。“标准”模式FTP客户端会向FTP服务器发送PORT命令。“被动”模式客户端会向FTP服务器发送PASV命令。这些命令是在建立FTP会话时通过FTP命令通道进行发送的。...
类别:其它 - 协议大全    查看:97    更新:2014-05-09