相比较NSOperation和NSThread,GCD提供了更简单的操作实现多线程,多线程下也无需创建自动释放池,而且GCD开发只有两个步骤1 创建队列2 提交任务到队列队列GCD创建的队列有两种,一种是串行队列,一种是并行队列,在串行队列中每次只执行一个任务,依次执行下去,而在并行队列中每次可以同...
分类:
移动开发 时间:
2014-11-09 16:33:50
阅读次数:
276
Semaphore是JDK1.5之后出的一个实现同步的另一个方式。Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程数。假如你有3个资源,有10个线程要使用该资源,同时只能有3个线程使用,所以其余7线程在等待,只要3个中任意一个释放资源,那么7个线程中的一个就可以使用了。
另外,7个线程等待可以使随机获取机会,也可以是按...
分类:
编程语言 时间:
2014-11-09 15:22:35
阅读次数:
234
简单地缓存系统:当有线程来取数据时,如果该数据存在我的内存中,我就返回数据;如果不存在我的缓存系统中,那么就去查数据库,返回数据的同时保存在我的缓存中。
其中涉及到读写问题:当多个线程执行读操作时(都加读锁),如果有数据返回;如果没有数据时,则让第一个读的线程,进行获取数据,然后进行写操作,这时需要第一个线程先释放掉读锁然后加写锁。第一个写完后,在家读锁,其他线程使用时判断,如果存在该数据,在直...
分类:
编程语言 时间:
2014-11-09 11:21:02
阅读次数:
266
list容器介绍相对于vector容器的连续线性空间,list是一个双向链表,它有一个重要性质:插入操作和删除操作都不会造成原有的list迭代器失效,每次插入或删除一个元素就配置或释放一个元素空间。也就是说,对于任何位置的元素插入或删除,list永远是常数时间。(1)构造函数list c:创建一个空...
分类:
其他好文 时间:
2014-11-08 23:18:43
阅读次数:
303
智能指针是为了便于管理动态内存,能够自动管理释放所指向的对象。智能指针共有三种:1、shared_ptr允许多个指针指向同一个对象;2、unique_ptr独占所指向的对象;3、weak_ptr是一个伴随类,它是一种弱引用,指向shared_ptr所管理的对象。这三种类型都定义在memory头文件中...
分类:
编程语言 时间:
2014-11-08 16:36:26
阅读次数:
169
在OpenSSL心脏出血之后,我相信非常多人都出了血,而且流了泪...网上瞬间出现了大量吐嘈OpenSSL的文章或段子,仿佛内心的窝火一瞬间被释放了出来,跟着这场疯闹,我也吐一下嘈,以雪这些年被OpenSSL蹂躏之辱,或许能够顺便展现一下我的无知与愚昧,但仅仅是或许... 首先声明的一点是,我并没有...
分类:
其他好文 时间:
2014-11-08 15:04:30
阅读次数:
128
转载自:http://www.cnblogs.com/pengrui/archive/2011/04/02/2002841.html一、程序内存分配的基本知识一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区: 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数...
分类:
编程语言 时间:
2014-11-08 11:51:31
阅读次数:
241
一、简介用C++和JAVA编写过程序的朋友一定会为两种语言不同的内存管理机制懊恼。JAVA程序运行在JVM之上,由JVM自动实现内存管理,开发者只管申请内存而不用手动释放内存。当JAVA中对象没有被任何引用变量(类似于C和C++的指针)引用时,JVM会将对象释放掉。C++和C一样,是编译后能够直接被...
分类:
其他好文 时间:
2014-11-08 11:42:54
阅读次数:
191
一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方...
分类:
其他好文 时间:
2014-11-07 20:38:33
阅读次数:
178
端口扫描在系统攻防中占据非常重要的地位,在了解端口扫描之前,有必要先了解一些TCP协议以及三次握手的相关知识。1.TCP协议TCP报文格式如下图所示:其中比较重要的几个字段:复位比特RST:当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其它原因),必须释放连接,..
分类:
其他好文 时间:
2014-11-07 19:23:05
阅读次数:
234