进程 线程
javascript为什么要异步
进程 线程
JS是单线程的语言
Javascript它和DOM渲染是共用一个线程
进程 正在(内存)运行的应用程序就叫一个进程
例如:正在你手机里面运行的微信就是一个进程
特点:在内存独占一份空间
总结
进程:就是在内存中正在运行的程序就叫一个进程 特点:在内存中独享一份空间
线程:一个应用程序是由多个线程组成,每一个线程之间相互是独立的
java 多线程
javascript 单线程 如何遇到耗时任务,如果同步,那么就会造成线程阻塞
**
同步的代码 线程被阻塞
<!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);
alert("http")
console.log(2)
</script>
</body>
</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>