一个RunLoop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用RunLoop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。runloop的设计是为了减少cpu无谓的空转。RunLoop的使用场合:1、使用端口或自定义输入源和其他线程通信;2、子线程中使用了...
分类:
其他好文 时间:
2015-11-06 20:58:22
阅读次数:
291
ZeroMq实现跨线程通信之前在技术崇拜的技术经理指导下阅读了ZeroMq的基础代码,现在就将阅读的心得与成果记录一下,并重新模仿实现了一下经理的异步队列。1、对外接口//主要接口(1)void *ymq_attach (void *ctx_, int oid, void* sink_);(2)v....
分类:
编程语言 时间:
2015-11-05 00:27:51
阅读次数:
303
转自:http://www.bdqn.cn/news/201303/8038.shtml1、Handler简介Handler 为Android操作系统中的线程通信工具,包为android.os.Handler。与Handler绑定的有两个队列,一个为消息队列,另一个为线程队列。Handler可以通过...
分类:
移动开发 时间:
2015-10-22 10:34:03
阅读次数:
183
Runnable是执行工作的独立任务,但是它不返回任何值,如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。一、Runnablejava....
分类:
其他好文 时间:
2015-10-21 23:53:56
阅读次数:
380
安卓中一个程序跑起来叫进程,进程中至少有一个主线程。主线程用于处理用户的触摸操作和将触摸操作事件分发给响应的控件。如果进行消耗时间操作,下载,磁盘读取文件,不润许在主线程操作,只能在工作线程操作。主线程向工作线程发送消息和数据,工作线程也会时时反馈给主线程。线程通信:多个线程互相收发消息和数据。安卓...
分类:
移动开发 时间:
2015-10-18 15:22:20
阅读次数:
210
在上一篇中,我简单说了用AsyncTask来完成简单异步任务,但AsyncTask是把所有的异步任务放到一个队列中依次在同一个线程中执行。这样就带来一个问题,它无法处理那些耗时长、需要并行的的任务。如何处理这个难题呢?一是自己开启线程然后处理线程通信问题,二是使用HandlerThread这一便.....
分类:
移动开发 时间:
2015-10-07 20:23:07
阅读次数:
383
线程间通信的两个基本问题是互斥和同步。同步:一个线程的执行依赖于另一个线程的消息。互斥:对共享资源的排他性,一个线程必须等待别的线程释放公共资源之后才能继续执行。同步机制(Win32中):事件,信号量,互斥量,临界区各种同步方式:#全局变量win32多线程通信的最方式,但用全局变量同步会有两个弊端,...
分类:
编程语言 时间:
2015-09-18 00:49:54
阅读次数:
239
/*
管道流:
PipedInputStream
voidconnect(PipedOutputStreamsrc)
使此管道输入流连接到管道输出流src
PipedOutputStream
voidconnect(PipedInputStreamsnk)
在JDK我们看到PipedInputStream中有管道缓冲区,用来接收数据
管道流内部在实现时还有大量的对同步数据的处理
管道..
分类:
编程语言 时间:
2015-09-10 17:46:04
阅读次数:
122
(1)当访问共同的代码的时候:可以使用同一个Runnable对象,这个Runnable对象中有这个共享数据,比如卖票系统就可以这么做。或者这个共享数据封装在一个对象当中,然后对这个对象加锁,也可以实现数据安全访问。publicclassInterfacaesharethread{
publicstaticvoidmain(Strin..
分类:
编程语言 时间:
2015-09-10 17:34:59
阅读次数:
229
****#define HMGlobalQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)#define HMMainQueue dispatch_get_main_queue()#import "HMViewCon...
分类:
移动开发 时间:
2015-09-08 19:46:00
阅读次数:
155