在C#,Java中,异步方法,通常是伴随多线程,并发等术语一起出现的,比如C#中的async方法,是运行在一个线程池线程上,并且在异步方法运行完成后,有一个回调函数通知主线程。那么由于Javascript是单线程的,它的异步又是怎么解释的?首先对异步方法给一个定义,什么样的方法算是异步方法。我认为异...
分类:
编程语言 时间:
2015-03-17 19:29:18
阅读次数:
145
Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的:
Handler mHandler=new Handler();
mHandler.post(new Runnable(){
@Override public void run()
{ // TODO Auto-generated method st...
分类:
移动开发 时间:
2015-03-17 12:33:11
阅读次数:
221
使用开源项目ANR-WatchDog来检测ANR,下载链接为:https://github.com/SalomonBrys/ANR-WatchDog
Eclipse版本只需下载对应的jar包,在主线程调用new ANRWatchDog().start();
该ANR-WatchDog实现原理:
ANR-WatchDog创建一个监测线程,该线程不断往UI线程post一个任务,然后睡...
分类:
其他好文 时间:
2015-03-17 10:33:50
阅读次数:
142
前言
程序开发中经常遇到需要这些情况:辅助线程正在等待内核对象的触发,主线程需要强制终止辅助线程。我们常常做的就是使用:TerminateThread来强制终止线程。这样做当然是不太好的,强制终止线程后系统不会销毁此线程的堆栈,长久下去内存泄露问题就会很严重了。线程最安全的退出方式当然还是让它自己返回了。本文主要介绍windows核心编程中介绍的一种安全退出线程方式:使用可等待API等待内核对象...
分类:
编程语言 时间:
2015-03-16 12:53:41
阅读次数:
239
在编写多线程的工作中,有个常见的问题:主线程(main)启动好几个子线程(task)来完成并发任务,主线程要等待所有的子线程完成之后才继续执行main的其它任务。默认主线程退出时其它子线程不会停,如果想让main退出时其它子线程终止,可以用subThread.setDaemon(true)设置子线程...
分类:
编程语言 时间:
2015-03-15 22:48:02
阅读次数:
178
在Android里,UI线程是不允许被阻塞的,因此我们要将耗时的工作放到子线程中去处理。
那么子线程耗时处理后要怎样通知UI线程呢?我们可以在UI主线程中创建一个handler对象,然后通过重写其handleMessage(Message msg)的方法,该方法会接收到子线程中的handler对象的sendMessage((Message msg)发回来的消息。这样一发一收就完成工作;而关于主线程...
分类:
移动开发 时间:
2015-03-14 21:49:10
阅读次数:
232
一、说明 异步加载就是把消耗程序时间比较大的加载操作放到其他线程中,待加载完毕后通过回调函数的方式通知主线程。addImageAsync函数实现(Cocos2dx 3.3)Link:http://codepad.org/UuNcXMqq[raw code|fork]void TextureCach....
分类:
其他好文 时间:
2015-03-14 18:11:58
阅读次数:
231
今天讲一下,在Android中主线程如何向子线程中发送消息的问题。
或许回想无非就是创建一个Handler对象,然后一个线程发消息,另一个接收消息嘛……
原理确实是这样,但是我们平时,是从子线程向主线程发消息,而主线程默认已经帮我们完成了Looper的操作,所以我们只需要简单的“创建一个Handler对象,然后一个线程发消息,另一个接收消息”……
我们先说一下这个Looper是神马吧。...
分类:
移动开发 时间:
2015-03-14 16:56:14
阅读次数:
12948
Activity 是安卓中最重要的一个元素,安卓如果管理activity? 进程中的主线程如何建立?关于这几个问题我们将简要概述,不会展示太多的代码。
首先来看一下进程的入口函数:ActivityThead,从应用程序的角度,所有的activity 信息都保存在这个类的成员变量中
final HashMap mActi...
分类:
其他好文 时间:
2015-03-14 09:44:07
阅读次数:
131
Handler主要是主线程和子线程通信。一般子线程中做一些耗时操作做完之后通知主线程来修改UI。
实际上android系统在Activity启动或者状态变化等都是通过Handler机制实现的。
首先进入到ActivityThread的main方法中
public static void main(String[] args) {
……
Looper.pre...
分类:
移动开发 时间:
2015-03-14 08:28:31
阅读次数:
156