技术分享 -- 171




200x200


概述在上一篇日志中,我们介绍了 PHP 执行的大致流程:PHP 的执行流程 其中,语义分析后生成了由 zend 引擎处理的 opcode,如

#技术帖    #php    #技术分享    #源码   

200x200


PHP 源码的目录结构PHP 的目录划分还是很清晰的:. ├── build ├── ext ├── include ├── libs ├── main ├── modules ├

#技术帖    #php    #c语言    #技术分享   

200x200


概述HTTP 协议是超文本传送协议(HyperText Transfer Protocol)的缩写,它是万维网(World Wide Web,www,

#技术帖    #技术分享    #server    #http   
事故描述2015-09-21 15:43:34 到 2015-09-21 16:13:45 之间用户通过客户端 APP 查看“我的订单”列表会查看到同时登陆的其他用户订单2015-09-21 16:13:45 到 2015-09-21 16:36:17 之间用户无法查看客户端 APP 查看“我的订单”列表页面 事故原因分析spring 框架的 bean 默认以单例模式(这里并不是指 GOF 设计模式中的单例模式,而是在 spring 的 IOC 容器中只会存在一个该 bean 创建的对象)启动,这个类对象的成员数据共享,因此用户的请求数据被共享,后到的 request 覆盖了已经存在的 request 数据,等待的用户返回了后到的用户查询到的结果 关于测试测试过程中可以避免这个问题的发生吗?测试没有模拟并发的问题,这个问题是无法出现的,这也是事故发生后一个多小时无法定位到的主要原因 -- 不能在测试环境中复现然而,小流量上线显然是可以触发的,然而,在小流量上
#技术帖    #php    #技术分享    #work   

200x200


关于线程与信号的遗留问题1. 能否 kill 掉进程的一个线程而不影响其他线程2. 给进程发送信号,是只有调用线程会收到信号,还是全部线程都收到a. 

#技术帖    #技术分享    #进程    #线程   

200x200


概述工作中使用 mysql 比较多,mysql 之所以在业内具有如此崇高的地位,与他严密的加解锁逻辑也是分不开的InnoDB 的加解锁逻辑分析一直是一个比较难的

#技术帖    #mysql    #sql    #database   
概述iptables 是 linux 系统自带的防火墙,功能非常强大,可以方便的对网络访问权限进行配置,是服务器中的常用工具 安装并启动一般 linux 都是带有这个工具的,无需安装 centos 中的启动命令在 centos 及其他大多数 linux 发行版中执行下面的命令启动:/etc/init.d/iptables start 或:service iptables start  ubuntu 中的启动命令而 ubuntu 中并不存在 /etc/init.d/iptables 这个文件,所以无法使用上面的命令启动 iptables,需要使用 modprobe 命令modprobe ip_tables  iptables 的关闭centos 中的关闭命令与启动命令类似,centos 及其他大部分 linux 发行版中运行:/etc/init.d/iptables stop 或:service iptables stop  ubuntu 中的关闭命
#技术帖    #linux    #unix    #network   
概述也许很多人并不知道,i++ 其实并不是一个原子操作,甚至作为右值操作的 ++i 也并不是一个原子操作然而有时我们需要类似操作的原子性,如锁操作的过程中,原子性当然是必须的了 GCC 提供的原子操作 -- 加减运算与逻辑运算GCC 从 4.1.2 开始提供了 __sync_*系列的 built-in 函数,用于提供加减和逻辑运算的原子操作 type __sync_fetch_and_add (type *ptr, type value, ...); type __sync_fetch_and_sub (type *ptr, type value, ...); type __sync_fetch_and_or (type *ptr, type value, ...); type __sync_fetch_and_and (type *ptr, type value, ...); type __sync_fetch_and_xor (type *ptr, type value, ...); type __sync_fetch_and_nand (type *ptr, type value, ...);  type __sync
#技术帖    #c语言    #技术分享    #锁   

200x200


问题 -- 如何在进程间共享互斥量一般的,我们使用互斥量用来做线程同步与资源锁定,让一个资源同时只能有一个线程可以访问,那么,如何让互斥量在多个进程间共享呢?将互斥量创建在共享内存

#技术帖    #进程间通信    #技术分享    #fork   
问题描述在 src/event/ngx_event.c 中的 ngx_process_events_and_timers 中尝试获取自旋锁// void ngx_process_events_and_timers(ngx_cycle_t *cycle) // 事件驱动函数 {{{ void ngx_process_events_and_timers(ngx_cycle_t *cycle) { ngx_uint_t flags; ngx_msec_t timer, delta; if (ngx_timer_resolution) { timer = NGX_TIMER_INFINITE; flags = 0; } else { // 获取最近超时的时间 timer = ngx_event_find_timer(); flags = NGX_UPDATE_TIME; #if (NGX_THREADS) if (timer == NGX_TIMER_INFINITE || timer > 500) { timer = 500; } #endif } // 判断是否
#技术帖    #技术分享    #遗留问题    #nginx   



京ICP备15018585号