在Java中进行多线程编程可以极大地提高程序的效率和响应性。以下是一个简要的Java多线程编程指南,涵盖了多线程的基础概念、创建方式、线程池的使用以及线程安全与同步机制。
Java线程的生命周期包括:新建(NEW)、可运行(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)、超时等待(TIMED_WAITING)和终止(TERMINATED)。
class MyThread extends Thread {
public void run() {
System.out.println("线程 " + Thread.currentThread().getName() + " 正在执行");
}
}
public class ThreadExample {
public static void main(String[] args) {
MyThread t1 = new MyThread();
MyThread t2 = new MyThread();
t1.start();
t2.start();
}
}
class MyRunnable implements Runnable {
public void run() {
System.out.println("线程 " + Thread.currentThread().getName() + " 正在执行");
}
}
public class RunnableExample {
public static void main(String[] args) {
Thread t1 = new Thread(new MyRunnable());
Thread t2 = new Thread(new MyRunnable());
t1.start();
t2.start();
}
}
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(() -> {
TimeUnit.SECONDS.sleep(1);
return 42;
});
System.out.println(future.get());
executor.shutdown();
Executors.newCachedThreadPool()
:弹性线程池Executors.newFixedThreadPool(n)
:固定大小Executors.newSingleThreadExecutor()
:单线程串行Executors.newScheduledThreadPool(n)
:定时任务private final ReentrantLock lock = new ReentrantLock();
public void method() {
lock.lock();
try {
// 临界区代码
} finally {
lock.unlock();
}
}
AtomicInteger
以上是一个简要的Java多线程编程指南,涵盖了多线程的基础概念、创建方式、线程池的使用以及线程安全与同步机制。希望这些信息能帮助你更好地理解和实现Java多线程编程。