10

我是 javascript/jquery 的新手。我有一个简单的问题,其中一个 java 脚本函数正在运行,并且想查看该线程的线程 ID。在java中我们确实喜欢

Thread.getID();//in java

这将打印正在运行的线程的线程ID。以类似的方式,我们用来获取 javscript 中正在运行的线程 id 的函数是什么。

其实我想要的是..

在我的 JavaScript 中,我有一个正在监听频道的监听器。当通道中有消息时,会调用回调方法并处理数据。所以在这里我试图看看它是如何以这种方式工作的。假设频道中有 10 条消息,并且每条消息都会调用回调。

假设回调方法正在为消息“a”运行,并且在处理消息“a”的数据时,它收到了另一条消息“b”。消息“a”的处理完成后,是否会调用“b”的回调方法?

我想通过在回调函数中打印线程号来检查这一点,该函数告诉它是按顺序运行(一个线程)还是多个线程。这就是为什么我试图打印线程 ID。感谢您的回复。

谢谢, 斯瓦蒂

4

4 回答 4

5

JavaScript 是单线程的。所以这不适用于 JavaScript。

但是,可以通过 HTML5 中引入的非常有限的 Worker接口生成多个线程,并且已经在某些浏览器上可用。从MDC 文章中

Worker 接口产生真正的操作系统级线程,如果您不小心,并发可能会在您的代码中产生有趣的效果。然而,在 web worker 的情况下,与其他线程的精心控制的通信点意味着实际上很难引起并发问题。无法访问非线程安全组件或 DOM,您必须通过序列化对象将特定数据传入和传出线程。所以你必须非常努力地在你的代码中引起问题。

你需要这个做什么?

于 2010-09-02T21:42:35.567 回答
0

对于 JavaScript 中的大多数事情来说,只有一个线程,所以没有方法可以解决这个问题,因为它在“1”处是不变的,您可以在其中访问这些信息。后台有更多线程用于事件和排队(由浏览器处理),但就您的代码而言,有一个主线程。

Java != JavaScript,它们只共享 4 个字母 :)

于 2010-09-02T21:41:40.390 回答
0

除了名称之外,Javascript 与 Java 完全无关。Javascript 没有您可以访问的线程。

于 2010-09-02T21:42:39.133 回答
0

在 javascript 中,脚本在浏览器线程中运行,并且您的代码无法访问该信息,实际上您的代码不知道它是如何运行的。所以不行!javascript中没有这样的东西。

于 2010-09-02T21:43:29.497 回答