`
rikugun
  • 浏览: 350465 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Concurrent.Thread API中文文档

    博客分类:
  • Js
阅读更多
今天看了InfoQ上头的一篇关于js多线程编程的文章.发现这个Concurrent.Thread非常不错,顺手翻译了一下API,仅供娱乐.

API原文(日文):http://jsthread.sourceforge.net/cgi-bin/wiki/wiki.cgi?page=API_Specification
Goal(目标)

//运行函数中的线程var ui_t = Concurrent.Thread.create(function(){ var i = 0; while ( 1 ) { document.body.innerHTML = "Now calculating..."                           + ['|', '/', '-', '\'][i]; i = (i+1) % 4; Concurrent.Thread.sleep(1000); }});

//時間がかかりそうな計算をする(別スレッド化された)関数var fibonacci = Concurrent.Thread.compile(function(x){ function fib ( n ) { return n <= 1  ?  1  :  fib(n-2) + fib(n-1); } var arr = new Array(); for ( var i=0;  i < x;  i++ ) arr.push(fib(i)); return arr;});

//主线程.var main_t = Concurrent.Thread.create(function(){ var calc_t = fibonacci.async(null, [1000]);  //从1000开始运行线程 var result = calc_t.join();                  //等待运行完的结果 ui_t.kill();                                 //バーを回していたスレッドを停止 focument.body.innerHTML = "Now calculating...finised.<br>\n"; for ( var i=0;  i < result.length;  i++ ) { document.body.innerHTML += i + ": " + result[i] + "<br>\n"; }});

主要的目标是下面3点

    * 提供对象的线程库
    * 可以使用多线程化函数(包括JavaScript函数组)
    * 解决了JavaScript通常的域,可以ajax输入多线程化代码的参数.

名前空間(命名空间)

本库使用「Concurrent」作为命名空间,「Thread」定义为构造器.本库的其他名称都在「Concurrent.Therad」下定义.
Concurrent.Thread 对象(object)

virtual-thread表示对象.包括生成线程的静态方法,操作线程的方法.
継承(继承)

    * → Object

static方法
prepare( func )

返回函数的javascript的代码.
compile( func )

virtual-thread 执行func.返回func执行结果.和下面的代码相同.

eval(Concurrent.Thread.prepare(func))

create( func, arg1, arg2, ... )

新建一个 virtual-thread,执行这个func.arg1, arg2, ... 为传入func的参数.和下面的代码相同.

Concurrent.Thread.compile(func).async(null, [arg1, arg2, ...])

返回 Concurrent.Thread对象.
self( )

获取当前 Concurrent.Thread 对象.virtual-thread化的,native-thread(通常的script)执行是返回null.
sleep( t )

当前运行的 virtual-thread 暂停 t ms.使用 notify方法可以中断暂停.
stop( )

使当前运行的virtual-thread进入停止状态.使用 notify方法恢复运行.下面是基本的用法.

try { Concurrent.Thread.stop();}catch ( e ) { if ( e instanceOf Concurrent.Thread.KillException ) { throw e; } else if ( e instanceof SomeOtherException ) { do_something(); } . . .}

yield( )

非独占CPU.和下面相等.

Concurrent.Thread.sleep(0)

instance  接口方法
th.join( )

th线程执行完后,当前的virtual-thread 待机.thが実行した関数の戻り値を返す.下記の notify でキャンセルできる.後述の「例外の伝播」も参照.

戻り値としてスレッドthの上で実行された関数の戻り値を返す.
th.kill( s )

和下面的相同.

th.notify( new Concurrent.Thread.KillException(s) )

th.notify( e )

在线程th中抛出异常.解除th中sleep,stop,join的待机状态.
Concurrent.Thread.KillException オブジェクト

从线程外部强制结束线程.与通常的相同可以使用 catch来取消.
継承

    * → Data.Error.Exception
    * → Error
    * → Object

instance属性
thread

例外の発生元である Concurrent.Thread オブジェクトへの参照を保持する.
Function 对象扩展
instance方法
f.async(this_val, args)

新建线程,调用函数f.this_val为this,args为参数数组.

返回一个Concurrent.Thread对象.
分享到:
评论

相关推荐

    Java API 文档 jdk-17.0.2-doc-all

    Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、枚举和注解的详细说明。这份"jdk-17.0.2_doc-all"文档集全面覆盖了Java 17.0.2版本的特性,是理解、学习和使用Java编程...

    JDK13 API 中文 文档.CHM

    1. **Javadoc**:通过阅读API文档,开发者可以了解每个类、接口和方法的功能、参数、返回值及可能抛出的异常,为编写高质量代码提供指导。 2. **JShell**:JDK13中的交互式REPL(Read-Eval-Print Loop)工具,可...

    JDK1.6.02 API文档 手机版 适就于所有手机02

    3. **多线程**:`java.lang.Thread`和`java.util.concurrent`包,支持并发编程和线程同步。 4. **数据库连接**:`java.sql`包,提供与各种数据库系统交互的接口和类,如JDBC。 5. **XML处理**:`javax.xml`系列包...

    JDK API中文文档

    2. **类(Class)**:API文档列举了每一个类的定义,包括其属性(fields)、构造函数(constructors)和方法(methods)。例如,`java.lang.String`类是处理字符串的基础类,包含了丰富的字符串操作方法。 3. **...

    Java API文档中文版.zip

    Java API文档中文版不仅包含了上述模块的详细说明,还包括了每个类、接口的构造方法、成员变量、方法的描述,以及示例代码。这对于学习和理解Java API至关重要,因为它提供了清晰的操作指南和使用示例。开发者可以...

    jdk api 1.8 chm 中文文档.zip

    **JDK 1.8 API 中文文档**是Java开发者不可或缺的重要参考资料,它详细记录了Java Development Kit(JDK)1.8版本中的各种类、接口、方法和异常等核心组件。这个文档以CHM(Microsoft Compiled HTML Help)格式提供...

    java jdk api中文开发文档(免币)

    Java JDK API中文开发文档是Java开发者的重要参考资料,它包含了Java平台标准版(Java SE)的所有公共类、接口和方法的详细信息。这份文档是开发者学习和理解Java编程语言以及其库功能的关键工具。以下是该文档中...

    java api 中文文档

    Java API中文文档是Java开发人员的重要参考资料,它包含了Java平台标准版(Java SE)的所有类库和接口的详细说明。这份文档以中文呈现,旨在帮助中国开发者更好地理解和使用Java编程语言,克服语言障碍,提高开发...

    javaapi中文文档.rar

    Java API中文文档是Java开发者的重要参考资料,它包含了Java平台标准版(Java SE)的所有公共类、接口和方法的详细说明。这份文档对于那些不熟悉英文原版API或者想要深入理解Java语言特性的开发者来说,是一份非常...

    jdk api 1.8_中文文档

    《JDK API 1.8_中文文档》是Java开发者不可或缺的重要参考资料,它详细记录了Java Development Kit(JDK)1.8版本中的各种类库、接口、方法和异常等核心组件,为开发者提供了全面而深入的API使用指南。这份文档以...

    java6.0 api 中文文档chm

    Java 6.0 API中文文档是Java开发人员的重要参考资料,它包含了Java标准版6.0的所有公共类、接口和方法的详细说明。这份文档以CHM(Microsoft Compiled HTML Help)格式提供,便于在Windows XP及更高版本的操作系统上...

    java api1.6中文文档chm

    Java API 1.6中文文档是Java开发者的重要参考资料,它详细介绍了Java 1.6版本中的各种类库、接口、方法以及异常等核心组件。这个文档以CHM(Compiled HTML Help)格式提供,允许开发者在没有网络的情况下进行离线...

    jdk6.0 API文档中文版

    **Java Development Kit (JDK) 6.0 API 文档中文版** JDK 6.0 API 文档是Java开发者的重要参考资料,它包含了Java平台标准版6.0的所有公共类、接口、方法和异常的详细说明。这个文档以HTML形式提供,便于用户在线...

    Java.API文档中文版

    Java API文档中文版是Java开发人员的重要参考资料,它详尽地介绍了Java平台标准版(Java SE)中的类库、接口、方法以及各种编程规范。这个文档以CHM(Compiled HTML Help)格式提供,便于离线查阅和快速检索。CHM是...

    JAVA API官方文档中文版.zip

    这个“JAVA API官方文档中文版”压缩包包含了完整的Java API的中文翻译,对于Java开发人员和学习者来说,是一份极其重要的参考资料。 文档通常会按照Java的不同版本进行更新,确保覆盖最新的特性和功能。Java API...

    JAVA API官方文档中文版

    这份"JAVA API官方文档中文版"是Java开发者的重要参考资料,它详尽地解释了每个类、接口、方法和构造函数的功能,以及如何在实际编程中正确使用它们。 文档主要分为以下几个部分: 1. **基础类库**:包括`java....

    JAVA-API.rar_Java API文档·_Java api文档_java api

    本资源是JAVA-API.rar压缩包,内含"JAVA API官方文档中文版.CHM",这是一个完整的Java API中文开发文档,方便中国开发者查阅和学习。 Java API文档详细列出了Java类库中的每个类、接口、方法和构造函数,以及它们的...

    java api 官方文档中文版

    这个中文版的API文档为中国的开发者提供了一种更方便的方式来查阅和理解Java类库中的各种类、接口、枚举和注解,使得在编程过程中能够更加高效地定位和使用相应的功能。 首先,我们要明白API(Application ...

    Java 6 API 中文文档 html

    2. **核心类库**: API文档详述了如`java.lang`、`java.util`和`java.io`等核心包中的类和接口。例如,`java.lang`包包含了所有Java程序的基础类,如`Object`、`String`、`Integer`等;`java.util`包提供了集合框架、...

Global site tag (gtag.js) - Google Analytics