Java Concurrency
简单地说,并发性是并行运行多个程序或程序的几个部分的能力。
并发性使程序能够利用底层操作系统和机器硬件尚未开发的功能来实现高性能和吞吐量。
例如,现代计算机在一个CPU中有多个CPU或多个内核,程序可以利用所有的内核进行部分处理;因此,与顺序处理相比,提前完成任务的时间要早得多。
java并发的主干是线程。
线程是一个轻量级进程,它有自己的调用堆栈,但是可以访问同一进程中其他线程的共享数据。
Java应用程序默认在一个进程中运行。在Java应用程序中,您可以使用许多线程来实现并行处理或并发。
在计算机科学中,并发性是指程序、算法或问题的不同部分或单元能够不按顺序或部分顺序执行,而不影响最终结果的能力。这允许并行执行并发单元,这可以显著提高多处理器和多核系统的执行速度。从更专业的角度来说,并发性是指程序、算法或问题的可分解性,可以分解为与订单无关的或部分有序的组件或单元。
Java 程序并发的基础
第一个类,您将需要使java类并发,即 java.lang.Thread
。
这个类是java中所有并发概念的基础 java.lang.Runnable
的接口,以抽象线程类的线程行为。
可以在 java.util.concurrent
中找到构建高级应用程序所需的其他类。Java 1.5中添加的并发包。
Java 并发简单吗?
上面的描述给人的印象是并发确实是一个很好的概念,并且很容易实现。
嗯,它不是。它需要对基本概念有很好的理解——以及对应用程序目标的清晰理解。
与单线程应用程序相比,并发应用程序通常具有更复杂的设计。
多个线程访问共享数据时执行的代码需要特别注意。由不正确的线程同步引起的错误很难检测、重现和修复。
它们通常出现在较高的环境中,比如生产环境,而在较低的环境中复制错误有时是不可能的。
除了复杂的缺陷之外,并发还需要更多的资源来运行应用程序。确保你有足够的资源。
本系列教程
在单个 post 中覆盖整个 java 并发几乎是不可能的。
因此,我在Java并发教程下面写了一篇文章,讨论单个概念。
仔细阅读这些教程,如果你有任何问题或建议,请告诉我。
参考资料
https://howtodoinjava.com/java-concurrency-tutorial/