进程和线程

进程

   在一个电脑中,有一个操作系统,其中进行着谷歌浏览器、QQ、微信、网易云音乐等多个进程。特点是:独立进行,互不干扰。
线程

  在启动一个进程时(比如谷歌浏览器),操作系统就会给谷歌浏览器分配一个线程,在应用程序的运行过程中可能会同时执行多个任务,于是可以向操作系统申请分配更多的线程来执行不同的任务,比如谷歌浏览器中的多个任务。
具体解释如下图所示:

 

 

进程与线程的区别

  进程与进程之间是互相独立的;线程与线程之间是可以数据共享的(就好比一个篮球队,每个队员都有各自的定位,各司其职,但是可以相互配合等操作),并且线程是可以被调度的,可以替换按照某个顺序执行(比如浏览器中的执行线程和GUI线程就是被调度为互斥的,当GUI线程执行渲染时,执行线程会被阻塞,反之亦然)。
调度栗子:(看不到元素内容被改变)

<h2 id="name">凌晨</h1>
<button onclick="test()">click me</button>
<script>
  function test() {
    title.innerHTML = "凌晨在路上";
    while (true) {}
  }
</script>

 

这就证明了 --> JS是单线程语言,指的是在宿主环境内(浏览器),执行JS代码的线程只有一个。所以才有了JS中的异步,关于异步的讨论,下次文章展示。

posted @ 2021-11-09 15:26  凌晨在路上  阅读(35)  评论(0)    收藏  举报