java多线程与并发
Java-中的多线程和并发
Java是最早使开发人员可以使用多线程的语言之一。 Java从一开始就具有多线程功能。 因此,Java开发人员经常面临上述问题。 这就是我在Java并发上编写此线索的原因。 谨此提醒自己,以及可能从中受益的其他Java开发人员。
本教程主要关注Java中的多线程,但是多线程中发生的一些问题类似于多任务和分布式系统中发生的问题。 因此,对多任务和分布式系统的引用也可能出现在此线索中。 因此,单词“并发”而不是“多线程”。
并发模型
第一个Java并发模型假定在同一应用程序中执行的多个线程也将共享对象。 这种类型的并发模型通常称为“共享状态并发模型”。 许多并发语言构造和实用程序旨在支持这种并发模型。
但是,自从编写第一本Java并发书籍以来,甚至自Java 5并发实用工具发布以来,并发体系结构和设计领域已经发生了很多事情。
共享状态并发模型导致许多并发问题,这些问题很难优雅地解决。 因此,被称为“无共享”或“分离状态”的替代并发模型已经普及。 在单独的状态并发模型中,线程不共享任何对象或数据。 这避免了共享状态并发模型的许多并发访问问题。
出现了新的异步“独立状态”平台和工具包,例如Netty,Vert.x和Play / Akka和Qbit。 新的非阻塞并发算法已经发布,并且新的非阻塞工具(例如LMax Disrupter)已添加到我们的工具箱中。 Java 7中的Fork and Join框架和Java 8中的collection stream API引入了新的函数式编程并行性。
翻译自: https://dev.to/sonali_g_/java-multithreading-concurrency-overview-59eb
java多线程与并发