Java中的多线程是一种能够在同一应用程序中执行多个并发任务的方法。以下是几个Java多线程使用的案例:
- 经典的“打印Hello World”例子:
class MyThread extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Hello World " + i);
}
}
}
public class TestThread {
public static void main(String args[]) {
MyThread t1 = new MyThread();
MyThread t2 = new MyThread();
t1.start();
t2.start();
}
}
在这个例子中,我们创建了两个MyThread类的对象t1和t2,并且分别调用了它们的start()方法来启动这两个线程。每个线程都会在一个独立的执行环境中运行,打印出“Hello World”。
- 线程同步的例子:
public class CounterExample {
private int count = 0;
class IncrementThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 50000; i++) {
increment();
}
}
}
class DecrementThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 50000; i++) {
decrement();
}
}
}
synchronized void increment() {
count++;
}
synchronized void decrement() {
count--;
}
public static void main(String[] args) throws InterruptedException {
CounterExample example = new CounterExample();
Thread incThread = example.new IncrementThread();
Thread decThread = example.new DecrementThread();
incThread.start();
decThread.start();
incThread.join();
decThread.join();
System.out.println(example.count);
}
}
在这个例子中,我们创建了一个CounterExample类,其中包含两个内部类IncrementThread和DecrementThread,分别代表两个线程。increment()和decrement()方法是线程同步的,这意味着任何时候只有一个线程可以访问它们。因此,在这个例子中,计数器的值应该最终为零。
这些只是Java多线程的一些基本例子,实际上还有很多其他的用例,例如使用Executor框架,使用线程池等等。