javascript中同步程序与异步程序及(进程与线程)

在讲程序中的同步和异步时,先讲讲我们实际生活中什么是同步,什么是异步。为什么要先讲这个呢,是因为接下来我想写一个详细的promise的文章,所以为了做铺垫吧。。。顺便把进程与线程也说说。

生活中的同步:就是指同时在做几件事情,同时进行同时做。

生活中的异步:不是同时在做,不是同步进行的。

大家都知道程序的执行顺序是自上向下执行的。

那么程序中的同步和异步又是怎样的呢 其实和我们实际生活中的同步异步是相反的。

程序中的异步代码:

也称为不阻塞代码,就是指同时执行,如执行前面的代码不会阻塞后面的代码执行如下:

setTimeout(()=>{
  console.log("www")
},3000)
console.log("yyy")
//r返回:
yyy
xxx

为什么 是先打印 yyy 后打印 www,为什么哩。
以上代码就是异步程序,当执行计时器的同时也在执行下面的代码,执行到计时器(并不是指3秒之后在来执行这块代码,而是一直在执行,表示执行这块代码被占用了3秒 ) 在执行计时器的同时也去执行了console.log(“yyy”),有一瞬间它们俩是同时执行的,只不过执行打印yyy这块代码一下就执行结束了就把结果打印出来,计时器是3秒才执行结束。
注意 javascript 中大部分都是异步程序。

程序中的同步代码:

同步程序是指一个一个的执行,如前面一个执行完,才能执行后面的代码,也称为阻塞代码执行。
如 举个代码性的例子:

alert("aaa")
console.log("bbb")

当执行这块代码时,首先弹出一个框的同时也阻塞了后面代码的执行,只有关掉弹框时,才会打印下面的 “bbb” ,总之,前面的代码的执行完才会执行后面的代码。
那么讲这个有什么用呢
正因为javascript中大部分是异步程序,而我们的需求想要它同步执行,如
我想执行完A函数,在去执行B函数,执行完B函数,在去执行C函数等等,
可能就想到了回调函数,在A函数里调B,B函数里调C函数,很容易就陷入回调地狱,而且操作数据也十分费劲。
可能就要用到promise, async 异步函数来完美解决。下一博客详讲。。。。

什么是进程:

进程是指完成一个功能所进行的过程。

什么是线程:

线程是指,一个过程当中,程序同时运程的多个分支叫线程。
线程越多运行越快,多线程异步执行可以提高程序效率。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaScript 是一门单线程的编程语言,意味着它在任意给定的时刻只能执行一个任务。这是因为 JavaScript 在最初设计时是作为浏览器脚本语言而诞生的,用于操作网页的 DOM(文档对象模型)。 在 JavaScript ,任务按照它们被调用的顺序执行,这种方式称为同步执行。当一个任务执行时,其他任务必须等待它的完成才能继续执行。这种同步执行的特性可以确保数据的一致性,但也可能导致阻塞,特别是在执行耗时较长的任务时。 为了解决阻塞问题,JavaScript 引入了异步执行的概念。通过异步执行,可以让某些任务在后台执行,而不会阻塞其他任务的执行。常见的异步操作包括网络请求、文件读和定时器等。在 JavaScript ,通常使用回调函数、Promise、async/await 等方式来处理异步操作。 回调函数是最早被广泛使用的异步处理方式。通过将一个函数作为参数传递给异步操作,在操作完成后调用该函数来处理结果。然而,使用回调函数嵌套多层会导致代码可读性和维护性的降低,这就是所谓的"回调地狱"问题。 为了解决回调地狱问题,Promise 和 async/await 出现了。Promise 是一种用于处理异步操作的对象,它可以链式调用,避免了回调函数嵌套的问题。而 async/await 是基于 Promise 的语法糖,使异步代码看起来更像同步代码,更易于理解和编。 总结起来,JavaScript 是单线程的,但通过异步执行可以提高程序的性能和响应速度。同步执行保证了数据的一致性,而异步执行允许在后台处理耗时操作,提高了用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值