导航菜单

Java 编程/多线程与并发
课程进度 75% · 第8/10章8/10章 · 标签 1/2
1

创建线程

Java 多线程编程是提升程序并发性能的关键。通过多线程,程序可以同时执行多个任务,充分利用 CPU 资源。

java
1
// 继承 Thread
2
class MyThread extends Thread {
3
public void run() {
4
System.out.println("线程运行中");
5
}
6
}
7
new MyThread().start();
8
 
9
// 实现 Runnable
10
Runnable task = () -> {
11
for (int i = 0; i < 5; i++)
12
System.out.println(i);
13
};
14
new Thread(task).start();
15
 
16
// Callable(带返回值)
17
Callable<Integer> call = () -> {
18
return 42;
19
};
20
FutureTask<Integer> ft = new FutureTask<>(call);
21
new Thread(ft).start();
22
System.out.println(ft.get()); // 42
2

线程同步

java
1
class Counter {
2
private int count = 0;
3
 
4
// synchronized 方法
5
public synchronized void increment() {
6
count++;
7
}
8
 
9
// synchronized 块
10
public void decrement() {
11
synchronized (this) {
12
count--;
13
}
14
}
15
}
16
 
17
// ReentrantLock
18
Lock lock = new ReentrantLock();
19
lock.lock();
20
try {
21
// 临界区
22
} finally {
23
lock.unlock();
24
}
25
 
26
// volatile(保证可见性)
27
private volatile boolean running = true;

!多线程访问共享数据时必须同步,否则会出现数据竞争。优先使用 java.util.concurrent 包的高级工具