第五章:Java进阶特性
-
- 5.1 多线程与并发编程
-
- 5.1.1 多线程基础
- 5.1.2 线程同步与锁
- 5.1.3 线程间通信与协作
- 5.1.4 线程池
- 5.2 Java I/O流
-
- 5.2.1 字节流与字符流
- 5.2.2 缓冲流
- 5.2.3 对象序列化与反序列化
- 5.3 网络编程基础
-
- 5.3.1 Socket编程
- 5.3.2 NIO编程
- 5.4 Java反射机制
-
- 反射的基本用法
- 使用反射实现工厂模式
- 5.5 Java 8新特性
-
- Lambda表达式
- Stream API
- 5.6 Java 16及更高版本的新特性
- 小结
5.1 多线程与并发编程
5.1.1 多线程基础
在Java中,多线程是通过Thread
类或实现Runnable
接口来创建和管理线程的。多线程使得程序能够同时执行多个任务,提高程序运行效率。
// 通过继承Thread类创建线程
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("Running in " + Thread.currentThread().getName());
}
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); // 启动线程
}
}
// 通过实现Runnable接口创建线程
public class RunnableExample implements Runnable {
@Override
public void run() {
System.out.println("Running in " + Thread.currentThread().getName());
}
public static void main(String[] args) {
RunnableExample task = new RunnableExample();
Thread thread = new Thread(task);
thread.start();
}
}
5.1.2 线程同步与锁
在多线程环境下,可能会出现数据不一致的问题,这时就需要引入线程同步机制,如synchronized
关键字和Lock
接口。下面是一个简单的synchronized示例:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized void decrement() {
count--;
}
public synchronized int value() {
return count;
}
}
Java 5引入了java.util.concurrent.locks
包,提供更灵活的锁机制,如ReentrantLock
:
import java.util.concurrent.locks.ReentrantLock;
public class CounterWithLock {
private final ReentrantLock lock = new ReentrantLock();
private