# 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
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
上面的代码,没有使用多线程,就是在主线程中执行的,代码会依次按照顺序执行,所以是没有办法同时打印偶数和奇数的,必须偶数打印完才能打印奇数。
内容未完......