<commit_before># 线程创建和线程执行

### 引言
在IT圈里，每当我们谈论并发时，必定会说起在一台计算机上同时运行的一系列线程。如果这台电脑上有多个处理器或者是一个多核处理器，那么这时是实实在在的“同时运行”；但是，如果计算机只有一个单核处理器，那么这时的“同时运行”只是表象而已。

所有的现代操作系统全部支持任务的并发执行。你可以边听音乐，边上网看新闻，还不耽误首发电子邮件。我们可以说，这种并发是 **进程级并发** 。在进程内部，我也可以看到有许许多多的并发任务。我们把运行在一个进程里面的并发任务称 **线程**。

和并发相关的另外一个常见概念是 **并行**。并发与并行之间，存在着一些不同，也存在着一些联系。一些程序员（Author，窃译为“程序员”）认为，在一个单核处理器上多线程地执行应用程序就是并发，并且你可以观察到程序员的执行；另外，当你的程序以多线程的形式运行在多个处理器或者是多核处理器上时，就是并行。还有一些程序员认为如果应用程序的线程没有按照预先设定好的顺序执行就是并发；为了简化问题解决方案而是用个线程，并且这些线程是按照一定顺序在执行，那么这是并行。

本章将通过一系列示例来演示如何使用Java7的API来执行一些基本的线程操作。你将可以看到，在Java程序中，如何创建、执行线程，如何控制线程的执行，如何将一组线程作为一个单元来操纵等等。
<commit_msg>提交最新的翻译成果<commit_after># 线程创建和线程执行

### 引言
在IT圈里，每当我们谈论并发时，必定会说起在一台计算机上同时运行的一系列线程。如果这台电脑上有多个处理器或者是一个多核处理器，那么这时是实实在在的“同时运行”；但是，如果计算机只有一个单核处理器，那么这时的“同时运行”只是表象而已。

所有的现代操作系统全部支持任务的并发执行。你可以边听音乐，边上网看新闻，还不耽误首发电子邮件。我们可以说，这种并发是 **进程级并发** 。在进程内部，我也可以看到有许许多多的并发任务。我们把运行在一个进程里面的并发任务称 **线程**。

和并发相关的另外一个常见概念是 **并行**。并发与并行之间，存在着一些不同，也存在着一些联系。一些程序员（Author，窃译为“程序员”）认为，在一个单核处理器上多线程地执行应用程序就是并发，并且你可以观察到程序员的执行；另外，当你的程序以多线程的形式运行在多个处理器或者是多核处理器上时，就是并行。还有一些程序员认为如果应用程序的线程没有按照预先设定好的顺序执行就是并发；为了简化问题解决方案而是用个线程，并且这些线程是按照一定顺序在执行，那么这是并行。

本章将通过十二个示例来演示如何使用Java7的API来执行一些基本的线程操作。你将可以看到，在Java程序中，如何创建、执行线程，如何控制线程的执行，如何将一组线程作为一个单元来操纵等等。

在本节，我们将学习如何在Java程序中创建线程，以及如何运行。在Java程序中，一切皆为 **Object** ，线程也是如此。我们有两种方式创建线程：

1. 继承`Thread`类，并且重写`run()`方法；
2. 创建一个类，实现`Runnable`接口，然后创建一个`Thread`类的对象，然后将实现`Runnable`接口的类的实例作为参数，传递给`Thread`类的实例。

在本节，我们将使用第二种方式，来创建十个线程，并且运行起来。每个线程计算并打印两个十以内的整数之积。




{'fraction_non_alphanumeric': 0.11624745071380013, 'fraction_numerical': 0.002719238613188307, 'mean_word_length': 29.040816326530614, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '660998', 'n_tokens_mistral': 1358, 'n_tokens_neox': 1571, 'n_words': 30}