自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

转载 PHP 真正多线程的使用

PHP 5.3 以上版本,使用pthreads PHP扩展,可以使PHP真正地支持多线程。多线程在处理重复性的循环任务,能够大大缩短程序执行时间。   我之前的文章中说过,大多数网站的性能瓶颈不在PHP服务器上,因为它可以简单地通过横向增加服务器或CPU核数来轻松应对(对于各种云主机,增加VPS或CPU核数就更方便了,直接以备份镜像增加VPS,连操作系统、环境都不用安装配置),而是在于My

2015-07-22 16:59:47 1487

转载 PHP多进程处理并行处理任务实例

本文目的本文通过例子讲解linux环境下,使用php进行并发任务处理,以及如何通过pipe用于进程间的数据同步。写得比较简单,作为备忘录。PHP多进程通过pcntl_XXX系列函数使用多进程功能。注意:pcntl_XXX只能运行在php CLI(命令行)环境下,在web服务器环境下,会出现无法预期的结果,请慎用!管道PIPE管道用于承载简称之间的通讯数据。为

2015-07-22 15:15:40 11595 5

原创 创建两个线程模拟火车站两个窗口售票程序

#include #include using namespace std;DWORD WINAPI Fun1(LPVOID lpParameter);DWORD WINAPI Fun2(LPVOID lpParameter);int index = 0;int tickets = 100; HANDLE hMutex;int main(){ HANDLE hThre

2015-07-22 14:55:16 880

转载 深入分析Sleep(0)与Sleep(1)的区别

目的:有时候我们想让线程不被调度一定的时间,也就是说让线程睡眠一段时间。API 接口:在 Win32中可以调用 Sleep,SleepEx 和 SwitchToThread 三个API。VOID WINAPI Sleep(DWORD dwMilliseconds);DWORD WINAPI SleepEx(DWORD dwMilliseconds, BOOl

2015-07-22 13:16:40 377

转载 Node.js的线程和进程

前言  很多Node.js初学者都会有这样的疑惑,Node.js到底是单线程的还是多线程的?通过本章的学习,能够让读者较为清晰的理解Node.js对于单/多线程的关系和支持情况。同时本章还将列举一些让Node.js的web服务器线程阻塞的例子,最后会提供Node.js碰到这类cpu密集型问题的解决方案。  在学习本章之前,读者需要对Node.js有一个初步的认识,熟悉Nod

2015-07-21 20:39:51 4226

转载 理解Node.js的事件循环(代码是异步单线程,内部实现用的还是进程和线程,基于池化的线程实现异步)

在了解node.js之前你首先需要了解的一个基本的论点是:I/O是“昂贵”的。因此对于当前的编程技术而言,最大的浪费来自于等待I/O的完成。下面列出了改善该问题的几种方式,其中的某个可以帮助你提高性能:同步:在某一时刻,一次只处理一个请求。但这种情况下,任何一个请求都会“耽误”(阻塞)所有其他的请求。fork一个新进程:对于每个请求,你启动一个新的进程来

2015-07-21 18:46:16 1377

转载 浅谈MD5加密算法中的加盐值(SALT)

我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码。  加Salt可以一定程度上解决这一问题。所谓加Salt方法,就是加点“佐料”。其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列。而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后散列,

2015-07-21 16:51:13 3108

转载 线程池的研究及实现

什么是线程池?诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创

2015-07-21 15:38:29 322

转载 SOA架构 今天你实现了吗?

我们这里将讲一讲SOA架构,包括SOA架构的前世今生,希望本文对大家了解SOA有所帮助。AD:SOA架构在很多人眼里还是比较新的一个概念,有人追捧,有人抹杀。这里作者将从自己的经历来讲述SOA架构的前世今生。我也在不断反省自己,不管我说得对错,总会有一大批人来打击我,原因很简单“我自傲、我自大,没办法从小就很优秀,哈哈,爹妈生得好啊,不能怪我”。大家都谦虚了

2015-07-21 15:36:00 538

转载 REST 架构该怎么生动地理解?

@Ivony 老师的一句话概括很精辟:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。--- 简洁版 ---0. REST不是"rest"这个单词,而是几个单词缩写。但即使那几个单词说出来,也无法理解在说什么 -_-!! (不是要贬低人,是我自己也理解困难);1. REST描述的是在网络中client和server的一种交互形式;REST

2015-07-21 15:10:56 636

转载 彻底理解webservice SOAP WSDL

原文: http://wenku.baidu.com/view/f87b55f19e31433239689314.htmlWebServices简介先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构,既然说是一种架构的话,所以一般认为 SOA 是包含了运行环境,编程模型,架构风格和相

2015-07-21 15:05:22 8143

转载 白话REST-识别真假REST

大家对REST的认识?         谈到REST大家的第一印象就是通过http协议的GET,POST,DELETE,PUT方法实现对url资源的CRUD(创建、读取、更新和删除)操作。比如http://www.aizher.com/c2/(读取)仍然保持为 [GET] http://www.aizher.com/c2/http://www.aizher.com/c2/cre

2015-07-20 13:32:32 802

转载 REST无状态的理解

Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化"。降低开发的复杂性,提高系统的可伸缩性资源表现层状态转化 资源REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段

2015-07-20 12:42:07 932

转载 常见的三种Web服务架构

相互竞争的服务架构The Competing Architectures摘自《RESTful Web Services中文版》我们已经给出了“不同Web服务会有不同做法”的两个主要问题,现在要据此对不同风格的Web服务进行分类了。根据我的研究,常见的Web服务架构主要有三种:REST式架构、RPC式架构和REST-RPC混合架构。下面依次对它们进行介绍。RE

2015-07-20 12:32:25 1217

转载 REST 架构风格

目前基于网络应用的架构风格主要有三种: RPC架构风格   将服务器看作是由一些过程组成,客户端调用这些过程来执行特定的任务。SOAP就是RPC风格的一种架构。过程是动词性的(做某件事),因此RPC建模是以动词为中心的。 分布式对象架构风格    认为服务器是由一些对象和对象上的方法组成,客户端通过调用这些对象上的方法来执行特定的任务。并且客户端调用这些对象上的方法

2015-07-20 12:14:38 501

转载 教你透彻了解红黑树

教你透彻了解红黑树二叉查找树由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意结点的左子树不空,则左子树上所有结点的值均小于它的根

2015-07-18 13:22:23 347

转载 描述 Windows 操作系统内存管理的方法

(1)有三种方法:虚拟内存,内存映射文件,内存堆栈。虚拟内存是将页文件加载到内存,适用于比较大的对象或结构;内存映射文件是将磁盘上文件加载到内存,适用于大文件和单机的进程间内存共享;堆栈就是动态的分配内存,适用于小对象的创建。这些在windows核心编程中都描述得很详细的。(2)当进程要读自己的虚拟地址空间中的数据时:if(数据在物理内存中)   {

2015-07-18 12:43:55 501

转载 C++内存管理

C++内存管理[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自

2015-07-18 12:32:09 407

转载 堆栈的深度理解

接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Reg

2015-07-18 12:12:48 1961

转载 面试中的红黑树问题

版权所有,转载请注明出处,谢谢!http://blog.csdn.net/silangquan/article/details/18655795   连续两次面试都问到了红黑树,关键两次都没有答好,这次就完整地来学习整理一下。没有学习过红黑树的同学请参考:> Chapter 13 Red-Black Trees Chapter 14 Augmenting

2015-07-17 12:31:58 1038

转载 PHP vs Node.js 深入讨论

第一轮:起步第二轮:帮助和支持第三轮: 语言语法第四轮:开发工具第五轮:环境第六轮:集成第七轮:托管和部署第八轮:性能第九轮:开发者激情第十轮:前景网络正在处于一个日新月异的发展时代。服务器端开发人员在选择语言的时候非常困惑,有长期占主导地位的语言,例如C、Java和Perl,也有专注于web开发的语言,例如Ruby、Clojure和Go。只要你的项目运行良好,你的选择就显得没有那么重

2015-07-17 12:29:09 671 1

原创 mongodb添加用户密码并进行配置

//mongodb设置用户名密码,在mongodb/bin目录下use admin db.addUser('user12345','foobar'); app.use(session({ store: new MongoStore({ // Basic usage host: 'localhost', // Default, optional,可不写

2015-07-15 17:05:28 1456

转载 Java 开发者如何入门 Node.js 英文原文:Getting Started with Node.js for the Java Developer

首先, 我必须得承认,作为一个有着十多年开发经验的java开发者,我已经形成了解决绝大部分问题的固有套路,尽管它们很多时候显得笨重和繁琐。 比如说如果要读取一个文件,那应该就是初始化一个BufferedReader 实例并传入一个FileReader,这几乎是顺理成章的,我在很多自认为算得上“企业级”的项目中编写这样的代码并且很享受这个过程,可以说我就是一个对其他语言不屑一顾的java脑残粉。  

2015-07-15 12:41:38 954

转载 基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异。痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式。AD:随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,

2015-07-15 12:36:34 967

转载 在Java项目中拥抱Nodejs — 使用gruntjs编译typescript,并将生成的js合并、压缩

作为一个Java程序员,做的是Java项目,为什么需要了解Nodejs,并且还要拥抱它?这里的Java项目,特指java web项目。如果是纯java项目,并不是很需要它,但如果是有很js/css/coffeescript/typescript/less/sass这样的文件的项目时,也许你就需要Nodejs了。Nodejs是一个平台,可以让我们写服务器端的代码,它内部使用了goog

2015-07-15 12:26:30 5730

转载 基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践

淘宝网线上应用的传统软件栈结构为 Nginx + Velocity + Java,即:在这个体系中,Nginx 将请求转发给 Java 应用,后者处理完事务,再将数据用 Velocity 模板渲染成最终的页面。引入 Node.js 之后,我们势必要面临以下几个问题:技术栈的拓扑结构该如何设计,部署方式该如何选择,才算是科学合理?项目完成后,该如何切分流量,对运维来说才算是方

2015-07-15 12:23:25 4325

转载 六步实现Rest风格的API

Rest的作者认为计算机发展到现在,最大的成就不是企业应用,而是web,是漫漫无边的互联网web世界。Web能有这么大的成就,它值得我们研究。所以Rest的作者仔细研究了Web,按照Web的世界一些关键特性,提出了我们在实现企业应用的时候应该遵循的一种风格,就是Restful。Rest风格的API可以给我们很多好处,比如:简洁,统一,性能,可扩展性等等。可惜的是,在实现Rest的时候,总有

2015-07-14 16:18:06 507

翻译 简易C\C++内存池

一个简单C\C++内存池,网址如下:http://www.codeproject.com/Articles/27487/Why-to-use-memory-pool-and-how-to-implement-it,大体思路为:初始化时,分配几十个固定大小的内存块供程序使用,程序需要内存时,直接从内存池中取,释放内存时,内存池回收。该程序的内存分配时这样的,不管分配多大内存,只要内存池中有内存块并且

2015-07-13 15:47:12 449

转载 c++的进程和线程【windows】

前几天搞定了C++的多线程编程,今天闲来无事小做总结!【线程的概念】为了了解线程的概念,我们必须先讨论一下进程的概念。  一个进程通常定义为程序的一个实例。在Win32中, 进程占据4GB的地址空间。与它们在MS-DOS和16位Windows操作系统中不同, Win32进程是没有活力的。这就是说,一个Win32进程并不执行什么指令,它只是占据着4GB的地址空间,此空间中有应

2015-07-13 15:40:51 1436

转载 C++多线程编程简单实例

C++本身并没有提供任何多线程机制,但是在windows下,我们可以调用SDK win32 api来编写多线程的程序,下面就此简单的讲一下: 创建线程的函数HANDLE CreateThread(     LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD    SIZE_T dwStackSize,       

2015-07-13 15:37:55 331

转载 SQL语句的执行原理分析

原理:第一步:应用程序把查询SQL语句发给服务器端执行。我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。第二步:服务器解析请求的SQL语句。1:SQL计划缓存,经常用查询分析器的朋友大概都知道这样一个事实,往往一个查询语句在第一次运行的时候需要执行特别长的时间,但是如果你马上或者在一定时间内运行同样的语句,会在很短的时间内返回查询结果

2015-07-13 15:33:54 362

转载 数据库原理总结

名词积累:数据库(Database):存放和提供数据的“库房”数据(Data):数据库中存储的基本对象。数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件。数据库系统(Database System):包括数据库、DBMS、应用系统、数据库管理员(DBA)主键(Primary Key):用于唯一的标识表中的某一条记录的属性或属性的集合。

2015-07-13 15:14:14 610

原创 带参数main函数

int argc,char*argv agrc表示参数的个数 argv储存参数 这个函数的意思是逐一输出参数实际上,main函数也可以带参数。带参数main函数的定义格式如下:void main(int argc, char *argv[]){... ...}argc和argv是main函数的形式参数。这两个形式参数的类型是系统规定的。如果main函数要

2015-07-12 17:25:34 578

转载 内存溢出和内存泄漏的区别

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会

2015-07-11 15:55:31 2754

转载 C++多线程编程

C++的多线程不同于C语言的多线程,对于我这个从C转向C++的来说更是觉得很难理解;来新公司的这段时间也是一直在思考这方面的事情,近期一直在检查程序中死锁的问题;就总结以下最近对于C++多线程编程的心得吧。      C++的多线程主要体现在两方面,一方面是对于全局数据的线程同步。我们看下面的实例      首先我们封装一个Thread类Thread.h 文件#if

2015-07-11 15:30:18 511

空空如也

空空如也

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

TA关注的人

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