简而言之,[**并发**](https://en.wikipedia.org/wiki/Concurrency_%28computer_science%29)是并行运行多个程序或程序的多个部分的能力。 并发使程序可以通过利用底层操作系统和机器硬件的未开发功能来实现高性能和吞吐量。 例如现代计算机在一个 CPU 中具有多个 CPU 或多个内核,程序可以将所有内核用于处理的某些部分; 因此,与顺序处理相比,可以更早地完成任务。
简而言之,[**并发**](https://en.wikipedia.org/wiki/Concurrency_%28computer_science%29)是并行运行多个程序或程序的多个部分的能力。 并发使程序可以通过利用底层操作系统和机器硬件的未开发功能来实现高性能和吞吐量。 例如现代计算机在一个 CPU 中具有多个 CPU 或多个内核,程序可以将所有内核用于处理的某些部分; 因此,与顺序处理相比,可以更早地完成任务。
2.**We can get the result returned by the call() method**. For this purpose, we have used the `get()` method. This method waits until the `Callable` object has finished the execution of the `call()` method and has returned its result.
我们都知道有两种方法可以在 Java 中创建线程。 如果您想了解有关它们比较的更多信息,请阅读 [**如何在 Java**](//howtodoinjava.com/java/multi-threading/difference-between-implements-runnable-and-extends-thread-in-java/"Difference between “implements Runnable” and “extends Thread” in java") 中创建线程。
@@ -212,7 +212,7 @@ class RejectedExecutionHandelerImpl implements RejectedExecutionHandler
```
## 3\. Java 执行程序框架最佳实践
## 3\. Java 执行器框架最佳实践
1. 始终针对静态分析工具(例如 [PMD](http://pmd.sourceforge.net/"pmd home page") 和 [FindBugs](http://findbugs.sourceforge.net/"findbugs home page") )运行 Java 代码,以查找更深层次的问题。 它们对于确定将来可能出现的丑陋情况非常有帮助。
2. 始终与高级人员进行交叉检查并更好地计划代码审查,以在执行过程中检测并可能在代码中出现[死锁或活动锁](https://en.wikipedia.org/wiki/Deadlock"deadlock and livelock")。 在大多数情况下,在应用程序中添加运行状况监视器以检查正在运行的任务的状态是一个很好的选择。