# Java教程 - 11 多线程

# 11.1 多线程概述

# 1 进程与线程

在计算机中,进程是指正在执行中的一个程序,它由程序、数据和进程控制块组成。每个进程都有独立的地址空间,相互之间不能直接访问,是操作系统对程序运行进行管理的单位,每个进程都可以拥有多个线程。

线程是指一条执行路径,它是进程中的一部分,可以与其他线程共享进程的资源和内存。线程是轻量级的进程,它比进程更快速,更容易创建和销毁。

# 2 并行与并发

并行

并行就是两个任务同时运行,就是A任务执行的同时,B任务也在进行,这是需要多核CPU支持的,A任务和B任务由不同的核来执行。

并发

并发是指两个任务都请求运行,而处理器只能接受一个任务,就把两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。以前计算机是单核的时候,就是并发执行,轮流指定多个任务,但是切换任务的速度很快,以为是同时执行多个任务。


看一下下面的方法:

public class ThreadTest {
    public static void main(String[] args) {
        printEven();
        printOdd();
    }

    /**
     * 打印偶数
     */
    private static void printEven() {
        for (int i = 0; i < 100; i++) {
            if (i % 2 == 0) {
                System.out.println(i);
            }
        }
    }

    /**
     * 打印奇数
     */
    private static void printOdd() {
        for (int i = 0; i < 100; i++) {
            if (i % 2 != 0) {
                System.out.println(i);
            }
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

上面的代码,没有使用多线程,就是在主线程中执行的,代码会依次按照顺序执行,所以是没有办法同时打印偶数和奇数的,必须偶数打印完才能打印奇数。

内容未完......