Java中的多线程编程

Java是一种支持多线程编程的面向对象编程语言,多线程是指同时执行多个线程的机制。Java中的多线程可以通过创建Thread子类的方式来实现。下面是一个示例:
public class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }

    public static void main(String[] args) {
        MyThread t = new MyThread();
        t.start();
    }
}
上述示例中,我们创建了一个名为MyThread的子类,并覆盖了Thread类的run()方法。我们可以在run()方法中实现我们要执行的逻辑。在main()方法中,我们创建了MyThread类的实例,并通过调用start()方法来启动该线程。

Java中的线程有五个状态:New、Runnable、Blocked、Waiting和Terminated。下面是一个简单的示例,演示了线程状态的转换:
public class ThreadDemo {
    public static void main(String[] args) {
        Thread t = new Thread();
        System.out.println(t.getState()); //New

        t.start();
        System.out.println(t.getState()); //Runnable

        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println(t.getState()); //Terminated
    }
}
上述示例中,我们创建了一个Thread实例t,并打印了它的状态。初始状态为New。接着,我们启动t线程,并再次打印状态。此时,线程的状态为Runnable,表示线程正在等待系统资源来执行。接下来,我们通过调用Thread.sleep()方法让线程暂停1秒钟。当线程睡眠结束后,它的状态变为Terminated,表示线程执行完毕。

除了上述示例之外,Java中还有很多多线程编程相关的类和接口,比如ThreadGroup、Runnable、Callable、Executor、ThreadPoolExecutor等等。开发者可以根据自己的需要选择合适的接口和类来实现多线程编程。