摘要: 同步:所谓同步,就是指发出一个功能调用时,在没有得到结果之前,该调用就不返回;也就是说必须一件一件的,等前一件事做完再做下一件事。异步:异步就是和同步的概念是相对应的。当一个异步过程调用发生后,调用者不能立刻得到结果,该调用就返回。实际处理这个调用的部件在完成后,通过状态、通知和回调函数来通知调用者。阻塞:阻塞调用是指调用过程返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停执行)。函数只有在得到结果之后才会返回。非阻塞:非阻塞为是相对与阻塞的,指在不能立刻得到返回结果之前,该函数不会阻塞当前的线程,而会立即返回。(1)同步,就是我调用一个功 阅读全文
posted @ 2014-03-27 21:30 herry_tu 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 1. 索引通常是设置where字句中的列,如果你设置select后的列,这是没有任何意义的。当然你需要对某列进行排序,order by后的列也是可以建成索引的。2. 使用唯一索引,主键就是最好的例子,假设你建的索引列,大量都是重复的,例如:性别,那么这样的索引并不会加快搜索速度。至于为什么,请大家自行了解索引的工作理。3. 只要有可能,就要尽量限定索引的长度,例如索引列为char(100),在其前10个字符大部分都是唯一的,请设置索引的长度为10,使用短索引可以加快查询速度,并节省硬盘空间。4. 索引的左前缀特性,联合索引实质上也是建立了多个的索引,那么是建立联合索引好还是分别建多个索引好呢? 阅读全文
posted @ 2014-03-27 21:13 herry_tu 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 线程是进程的实体,是CPU调度和分配的基本单位,线程自己基本上不拥有系统资源,只用有一点在运行中必不可少的资源(如程序计数器,寄存器和栈),但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程;同一进程中的多个线程之间可以并发执行。相对于进程而言,线程是一个更加接近于执行体的念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。在用户看来,多线程是同时执行的。但从操作系统来看,各个线程是交替执行的。系统不停的在各个线程之间切换,每个线程只有在系统分配给他的时间片内才能获得CPU的控制权,执行程序中的代码。进程和线程的区别(1)线程 阅读全文
posted @ 2014-03-27 21:06 herry_tu 阅读(204) 评论(0) 推荐(0) 编辑
摘要: http://blogread.cn/it/article/3250?f=sa#original 阅读全文
posted @ 2014-03-27 20:53 herry_tu 阅读(104) 评论(0) 推荐(0) 编辑
摘要: I/O复用使的程序能同时监听多个文件描述符,这对提高程序的性能至关重要。通常网络程序在下列情况下需要使用I/O复用技术:(1)客户端程序要同时处理多个socket(2)客户端程序要同时处理用户输入和网络连接(3)TCP服务器要同时处理监听socket和连接socket(这时I/O复用使用最多的场合)(4)服务器要同时处理TCP请求和UDP请求(5)服务器要同时监听多个端口,或者处理多种服务。需要指出的是,I/O复用虽然能同时监听多个文件描述符,但是它本身是阻塞的。并且当多个文件描述符就绪时,如果不采取额外的措施,程序就只能按顺序依次处理其中的每一个文件描述符,这使得服务器程序看起来像是串行工作 阅读全文
posted @ 2014-03-27 20:44 herry_tu 阅读(828) 评论(0) 推荐(0) 编辑
摘要: 本文转自:http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,如果进程运行在SMP机器上,它就可以同时使用多个cpu来执行各个线程,达到最大程度的并行,以 阅读全文
posted @ 2014-03-27 20:22 herry_tu 阅读(321) 评论(0) 推荐(0) 编辑