浅谈进程、线程

94 阅读1分钟

进程    在一个电脑中,有一个操作系统,其中进行着谷歌浏览器、QQ、微信、网易云音乐等多个进程。特点是:独立进行,互不干扰。 线程   在启动一个进程时(比如谷歌浏览器),操作系统就会给谷歌浏览器分配一个线程,在应用程序的运行过程中可能会同时执行多个任务,于是可以向操作系统申请分配更多的线程来执行不同的任务,比如谷歌浏览器中的多个任务。 具体解释如下图所示: 请添加图片描述 进程与线程的区别

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

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

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