随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想与园中各位高手一同探讨一下如何使用并发来最大化程序的性能。 多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我.....
分类:
编程语言 时间:
2015-05-21 10:44:54
阅读次数:
114
socket编程AsyncsocketiPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 cocoa AsyncSocket库,用它来简化CFNetwork的调用,它提供了异步操作 主要特性有: 队列的非阻塞的读和写,而且可选超时。你可以调用它读取和写入,它会当完成后告知...
分类:
移动开发 时间:
2015-05-19 10:28:53
阅读次数:
256
GCD怎么用的?
?
1.串行队列,同步操作,不会新建线程,操作顺序执行;
?
串行队列,异步操作,会新建线程,操作顺序进行,使用场景:既不影响主线程,又需要顺序执行的操作;
?
2.并行队列,同步操作,不会新建县城,操作顺序执行;
?
并行队列,异步操作,会新建线程,操作无序进行,队列前如果有其他任务,会等待其他任务执行完毕再执行;
?
全局队列是系统的,直...
分类:
移动开发 时间:
2015-05-17 13:49:15
阅读次数:
399
Boost.Asio是一个主要用于网络及底层I/O编程的跨平台C++库。1. 初窥Boost.Asio支持对I/O对象进行同步及异步操作。1.1 同步操作同步操作的事件顺序如下图所示:1) 调用者调用I/O对象的connect函数开始连接操作,socket.connect(server_endpoi...
分类:
其他好文 时间:
2015-05-16 00:03:22
阅读次数:
234
利用TcpListener和TcpClient类在同步方式下监听客户端连接、接受、发送数据时,在操作没有完成之前,一直处于阻塞状态,这对于接收、发送数据量不大的情况下,或者操作用时比较短的情况下是比较方便的。但对于执行完成时间较长的任务,例如传送大文件等,最好使用异步操作。 异步操作的最大优点...
a、多线程可以说是实现异步的一种方式; b、共同点:多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性; c、线程消费CPU资源、 异步消费硬件资源;1、多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些...
分类:
编程语言 时间:
2015-05-14 18:22:37
阅读次数:
123
上一节,我对NSOperation的基本概念及使用进行了介绍,想要了解的,请点击这里。本节中,我介绍自定义NSOperation实现多线程异步下载图片,类似于SDWebImage。
自定义NSOperation的步骤很简单,重写 - (void)main方法,在里面实现想执行的任务。
重写 - (void)main方法注意点:
1.自己创建自动释放池(因为如果是异步操作,无法访问...
分类:
其他好文 时间:
2015-05-13 10:22:54
阅读次数:
207
今天搞这两个关键字搞得有点晕,主要还是没有彻底理解其中的原理。 混淆了一个调用异步方法的概念: 在调用异步方法时,虽然方法返回一个 Task,但是其中的代码已经开始执行。该方法在调用时,即刻执行了一部分代码,直接最底层的 Async API 处才产生真正的异步操作,这时向上逐步返回,并最终使用一个 ...
什么是redis?redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘...
分类:
其他好文 时间:
2015-05-12 13:19:01
阅读次数:
119
C# 线程知识--使用ThreadPool执行异步操作 在应用程序中有许多复杂的任务,对于这些任务可能需要使用一个或多个工作线程或I/O线程来协作处理,比如:定时任务、数据库数据操作、web服务、文件的处理等。这些任务可能会非常耗费时间,为了是用户界面能及时响应,就会启用一个其他线程来并行处理任务。...
分类:
编程语言 时间:
2015-05-11 12:19:15
阅读次数:
145