@@ -234,7 +234,7 @@ class MyRunnable implements Runnable {
...
@@ -234,7 +234,7 @@ class MyRunnable implements Runnable {
2. 确保池不接受更多线程
2. 确保池不接受更多线程
3. 等待一段固定的时间,让所有线程完成它们所做的事情
3. 等待一段固定的时间,让所有线程完成它们所做的事情
4. 停止(中断)未完成任务的线程
4. 停止(中断)未完成任务的线程
5.出口
5.退出
以下代码执行前面列表中描述的所有操作:
以下代码执行前面列表中描述的所有操作:
...
@@ -523,7 +523,7 @@ class MyCallable implements Callable {
...
@@ -523,7 +523,7 @@ class MyCallable implements Callable {
如您所见,有许多方法可以从线程中获得结果。选择的方法取决于应用的特定需要。
如您所见,有许多方法可以从线程中获得结果。选择的方法取决于应用的特定需要。
# 并行与并行处理
# 并行与并发处理
当我们听到工作线程同时执行时,我们会自动地假设它们实际上做了编程所要并行执行的事情。只有在我们深入研究了这样一个系统之后,我们才意识到,只有当线程分别由不同的 CPU 执行时,这种并行处理才是可能的。否则,它们的时间共享相同的处理能力。我们认为他们在同一时间工作,只是因为他们使用的时间间隔非常短,只是我们在日常生活中使用的时间单位的一小部分。当线程共享同一个资源时,在计算机科学中,我们说它们同时进行。
当我们听到工作线程同时执行时,我们会自动地假设它们实际上做了编程所要并行执行的事情。只有在我们深入研究了这样一个系统之后,我们才意识到,只有当线程分别由不同的 CPU 执行时,这种并行处理才是可能的。否则,它们的时间共享相同的处理能力。我们认为他们在同一时间工作,只是因为他们使用的时间间隔非常短,只是我们在日常生活中使用的时间单位的一小部分。当线程共享同一个资源时,在计算机科学中,我们说它们同时进行。