javascript - 如何在javascript中同时调用函数?

标签 javascript jquery multithreading

我知道javascript是单线程语言,代码是逐行执行的。如果用户需要同时调用两个函数,在javascript中如何实现?实际上我知道在java中有一个线程可以同时运行两个任务我们可以实现这个这是我的代码

https://jsfiddle.net/a021oktk/

我需要同时调用这两个函数?

oneTask();
secondTask()

function oneTask() {
    for (var i = 0; i < 10; i++) {

        console.log("first loop:" + i)
    }
}

function secondTask() {
    for (var i = 0; i < 10; i++) {

        console.log("second loop:" + i)
    }
}

最佳答案

纯 Javascript 中不存在同时执行,因为它是单线程的,这意味着 Javascript 一次运行一个线程。

在浏览器中,您可以在 webWorker(一个单独的线程)中执行一些任务,但 webWorker 的功能非常有限(例如,它们无法以任何方式修改页面)。您可以阅读有关 webWorkers here on MDN 的信息,如果它们是适合您正在做的事情的工具(这实际上取决于您正在做的事情以及您想要通过结果完成什么)。

在nodejs中,有多种方法可以生成可以同时运行的子进程(甚至使用单独的CPU)。

如果您有兴趣创建一个长时间运行的进程,与其他任务“共享”CPU,并且“看起来”与其他任务同时运行,您可以进行自己的时间切片,允许其他任务与您的任务交织在一起,就像 described here 一样。这不是真正的同时执行,但可能看起来是(这取决于具体情况)。

关于javascript - 如何在javascript中同时调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31554553/

相关文章:

javascript - Angular Bootstrap 模态正在将整个页面加载到模态 (13.0)

javascript - Jquery 只选择 div 中的第一个 ul

java - 与Java的级联同步

javascript - 请解释一下像素差异?

c# - 使用任务和 Task.WaitAny 进行异常处理

c++ - 如何可靠地杀死 Qt/C++ 中的线程?

javascript - 程序不断返回无法读取未定义的属性toLowerCase

javascript - Angularjs - 动态地将属性值附加到绑定(bind)对象。如何?

javascript - 如何删除没有任何ID的td

javascript - 使用 jquery 为多个元素制作交错的淡入淡出循环