进程 线程

javascript为什么要异步
进程 线程
JS是单线程的语言
Javascript它和DOM渲染是共用一个线程

进程 正在(内存)运行的应用程序就叫一个进程
例如:正在你手机里面运行的微信就是一个进程
特点:在内存独占一份空间

线程 —>是进程的最小执行单位
一个进程包含多个线程

总结

进程:就是在内存中正在运行的程序就叫一个进程 特点:在内存中独享一份空间
线程:一个应用程序是由多个线程组成,每一个线程之间相互是独立的

java 多线程
javascript 单线程 如何遇到耗时任务,如果同步,那么就会造成线程阻塞
**

同步的代码 线程被阻塞

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. /* 同步的代码 线程被阻塞了 */
  11. console.log(1);
  12. alert("http")
  13. console.log(2)
  14. </script>
  15. </body>
  16. </html>

回调函数处理耗时操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 回调函数处理耗时操作 */
        /* 异步 */
        console.log(1)
        setTimeout(()=>{
            console.log("http")
        },1000)
        console.log(2)
    </script>
</body>
</html>

js中异步的使用场景

1.http
2.定时器
android 网络请求中是不能操作ui线程

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
</head>
<body>
    <script>
        /* 进程-线程 */
        /* js中异步的使用场景
        1.http
        2.定时器
         */
         /* android   网络请求中是不能操作ui线程 */
        console.log(1)
        $.get("./data.json",res=>{
            console.log(res)

        })
        console.log(2)
    </script>
</body>
</html>