开源项目async-threading能使as3支持多线程,google code地址:http://code.google.com/p/async-threading/
要在flex4 sdk环境下使用,要先修改一下源代码,打开com.symantec.premiumServices.asyncThreading.handlers.FPSObserverHandler
将import mx.core.Application; 修改为import spark.components.Application;
将private var _appRef:Application = Application.applicationas Application;修改为private var _appRef:Application = FlexGlobals.topLevelApplication as Application;
同时导入import mx.core.FlexGlobals;
这个api要求自定义的线程继承AbstractAsyncThread然后实现IAsyncThreadResponder接口,写一个测试用线程:
package thread { import com.symantec.premiumServices.asyncThreading.abstract.AbstractAsyncThread; import com.symantec.premiumServices.asyncThreading.interfaces.IAsyncThreadResponder; /** * 自定义线程 */ public class SelfDefinedThread extends AbstractAsyncThread implements IAsyncThreadResponder { private var f:Function; public function SelfDefinedThread(f:Function) { super(); this.f = f; } public function execute():void { f.call(); } } }
这个api还是比较强大的,基本线程操作和通讯都能实现了,具体可以看附件内的源代码api。
这个线程的构造函数要传入一个方法,这个方法将在线程启动后调用。
测试代码:
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="testThread()"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ import thread.SelfDefinedThread; private function testThread():void{ //线程1 var thread1:SelfDefinedThread = new SelfDefinedThread( function():void{ trace("线程1执行"); trace("开启线程2"); thread2.start(); }); //线程2 var thread2:SelfDefinedThread = new SelfDefinedThread( function():void{ trace("线程2执行"); if(thread1.sleeping) { thread1.kill(); thread2.kill(); thread3.kill(); trace("线程1,2,3终止"); }else{ trace("开启一个线程3"); thread3.start(); } }); //线程3 var thread3:SelfDefinedThread = new SelfDefinedThread( function():void{ trace(thread3.id + "线程3执行"); if(!thread1.sleeping) { thread1.sleep(); trace("线程1休眠"); } }); thread1.priority = thread1.RUN_LEVEL_HIGH; thread2.priority = thread2.RUN_LEVEL_BELOW_NORMAL; thread1.start(); } ]]> </fx:Script> <s:Label x="281" y="122" text="多线程测试"/> </s:WindowedApplication>
用调试模式执行就能看到结果:
相关推荐
"async-threading 让flex支持多线程"这个标题表明我们正在讨论如何在Adobe Flex环境中实现异步多线程处理。Flex是一种基于ActionScript的开放源码框架,常用于构建富互联网应用程序(RIA)。在Flex中,由于其默认的...
这得益于Java的异步事件探查器接口(Async Get Stack Trace),使得async-profiler可以高效地获取到线程堆栈信息,而不会引入过多的性能开销。 二、async-profiler的功能特性 1. CPU采样:async-profiler支持对...
在Android应用开发中,网络通信是必不可少的一部分,而`android-async-http`库是一个非常流行的异步HTTP客户端库,特别适合处理与服务器的交互。这个库由Leonardo Uribe创建,它提供了简单易用的API,使开发者可以...
8. **HTTPS支持**:Async-Http库也支持HTTPS协议,可以安全地处理加密的网络通信。 9. **线程管理**:库内部处理了线程切换,确保在回调方法执行时回到正确的线程,避免了UI操作在非主线程执行的问题。 10. **取消...
MongoDB异步驱动程序(mongodb-async-driver)是为Java开发者设计的一个库,它允许应用程序以非阻塞的方式与MongoDB服务器进行通信,提高了处理大量并发请求的能力。 在"mongodb-async-driver-2.0.1.jar"这个特定...
async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-...
Android-Async-Http是一个流行的开源库,用于在Android应用程序中执行异步HTTP请求。这个库由Loopj开发,简化了网络交互的过程,使得开发者能够更高效地处理网络操作,而无需阻塞主线程,从而避免ANR(Application ...
前端开源库-babel-helper-remap-koa2-async-to-generatorbabel-helper-remap-koa2-async-to-generator,将异步函数转换为ES2015生成器(koav2->koav1)。
8. **多线程支持**:Android-Async-Http允许你在多个线程中并发地发起请求,提高了网络操作的并行性。 9. **自定义拦截器**:通过实现`RequestInterceptor`接口,可以在请求发出前对其进行修改,例如添加全局的请求...
`android-async-http` 库提供了一个简洁的API,使得开发者可以方便地发送GET、POST等HTTP请求,同时支持文件上传和下载,以及JSON解析。 ### 使用`android-async-http` 1. **添加依赖**:在导入Eclipse项目时,需要...
1)包里包含android-async-http-1.4.11.jar 和 httpclient-4.5.8.jar两个文件 2)强大的网络请求库,主要特征如下: 处理异步Http请求,并通过匿名内部类处理回调结果 Http请求均位于非UI线程,不会阻塞UI操作 通过...
`async-caches`库提供了简单易用的API,让开发者能够轻松地在异步代码中集成缓存功能。 **使用async-caches** 要使用`async-caches`,首先需要安装它。通过`pip`命令可以方便地从PyPI安装: ```bash pip install ...
然而,不是所有的浏览器都原生支持`async/await`,这正是`babel-plugin-transform-async-to-promises`这个开源库的作用所在。它是一个Babel插件,旨在将`async function`和`await`语法转换为基于Promise的链式调用,...
Build Status ...https://github.com/loopj/android-async-http/blob/1.4.9/CHANGELOG.md Javadoc Latest Javadoc for 1.4.9 release are available here (also included in Maven repository): ...
10. **性能优化**:除了基础功能,`async-ratelimiter`可能还提供了性能优化选项,如预分配令牌、自定义存储解决方案(如Redis或MongoDB)以实现分布式限速,或者支持动态调整限制策略。 综上所述,`async-...
`async-profiler`支持多种事件类型,包括CPU时间、自定义事件、JNI调用等。此外,它还具有异步特性,能够在不影响JVM性能的情况下进行采样,这是它与许多其他性能分析工具相比的一大优势。 总之,`async-profiler`...
作为开源项目,Async-HTTP-Client拥有活跃的社区支持,不断有开发者贡献代码,修复问题,添加新功能,确保了项目的持续发展和兼容性。 9. **与其他库的集成**: 可以与Gson、Jackson等JSON库无缝集成,方便进行...
最新异步网络请求android-async-http-1.4.5.jar
android-async-http官方项目:来自Github;...该项目中包含了多个版本的android-async-http.jar包,目前最新版本是:android-async-http-1.4.5.jar; 地址:原项目地址:https://github.com/loopj/android-async-http