技术分享 -- 147




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   

200x200


概述经过几周的重构,博客在结构上、编码风格上日趋完善,虽然在前端显示上还有着明显的不足,后端也有着很多需要进一步改进和完善的地方,但是作为一个简单、初步的 php web 

#技术帖    #symfony    #web    #php   
概述很多 php 程序员对一个问题很困扰,那就是数组的遍历顺序 <?php $arr['laruence'] = 'huixinchen'; $arr['yahoo'] = 2007; $arr['baidu'] = 2008; ?> 对这个数组使用 foreach ($arr as $key => $val) 遍历的结果是什么样的呢? <?php $arr[2] = 'huixinchen'; $arr[1] = 2007; $arr[0] = 2008; ?> 对这个数组使用 foreach ($arr as $key => $val) 遍历的结果又会是什么样的呢? 想要了解这些问题的具体细节,首先必须了解 PHP 数组的具体实现 PHP 数组的实现 -- HashTable 结构在PHP中,数组是用一种HASH结构(HashTable)来实现的,PHP使用了一些机制,使得可以在O(1)的时间复杂度下实现数组的增删,并同时支持线性遍历和随机访问 
#技术帖    #php    #技术分享    #源码   

200x200


问题原因安装了 libevent,程序运行时出现了错误提示:error while loading shared libraries: libevent-2.0.so.5  问题很

#技术帖    #linux    #c语言    #文件   
简介libevent 是一个轻量级的开源高性能网络库,很多开源软件包括memcached 都是使用他作为网络层组件他只专注于网络层,采用事件驱动的模式,实现了对 IO 事件、定时器事件、信号事件的处理同时,他对 windows、linux、BSD 等多个平台的不同接口进行了封装由于最近在阅读 nginx 源码的事件处理模块,所以对同样是事件驱动模式的 libevent 很感兴趣,打算研读一下他的源码 事件驱动模式 -- Reactor 模式众所周知,apache 作为应用 web 服务器使用的是同步多进程模型,即在进程池中创建多个进程,当请求到来时,每个进程单独处理一个请求,这样的好处在于进程之间相互独立,服务不会因为某个进程的超时或其他问题而随之出现问题,但是这样的模型占用了大量的系统资源,特别是在大量并发请求到来的时候,大量的进程启动会导致系统资源占用过大而 nginx 以及 libevent 这样事件驱动模型的异步非阻塞模型的网络层应用,使用的是 Reactor 的模式进行请求的处理,只启动有限的进程,比如 nginx 建议启动与
#技术帖    #web    #服务器    #技术分享   



京ICP备15018585号