乐趣区

关于java:Java多线程开发之一入门相关知识

本章是 Java 多线程开发入门,重点介绍 Java 的线程状态及其互相转换。

一、根底知识点

多线程开发中,会波及到很多基础知识,这里后行梳理其中两个重要的知识点。

1.1 并发与并行

在多线程开发中,会常常提到并发与并行两个概念,咱们须要先明确这两个概念的含意到底是什么。

并发,concurrency,是一段时间内解决多件事件的需要,它是问题域 problem domain 的概念。

并行,parallelism,是在同一时刻同时解决多件事件的形式,它是办法域 solution domain 的概念。

并发以黑盒的角度,将指标零碎看做一个实体,要求该实体在一段时间内可能解决多件事件;并行以白盒的角度,将指标零碎合成为多个实体,这些实体能够同时别离解决多件事件,有多少个实体,就有多少并行,比方一个 8 核的 CPU,能够并行地运行 8 个工作。

并发是问题,是需要;并行是解决并发问题的办法之一。并发只提出要求,理论实现时,能够是单个实体串行解决工作(一个工作解决完再解决下一个),能够是多个实体并行处理工作(每个实体解决一个工作),能够是单个实体一直在多个工作之间来回切换着解决(如单核 CPU),甚至是多个实体一直在多个工作之间来回切换着工作做并行处理(如多核 CPU)。如下图所示:

退出移动版