Java多线程学习笔记
Java多线程学习笔记主要记录多线程的一些基础概念,多线程简单的使用方式。下面是笔记的详细内容:
进程和线程的区别
在操作系统中,进程和线程是两个不同的概念。进程是资源分配的最小单位,每个进程都有独立的代码和数据空间。进程间的切换会有较大的开销,一个进程可以包含1~N个线程。
线程是同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。线程是CPU调度的最小单位。线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。
多进程和多线程
多进程是指操作系统能同时运行多个任务(程序),而多线程是指在同一程序中有多个顺序流在执行。在Java中,要想实现多线程,有两种手段,一种是继承Thread类型,另一种是实现Runnable接口。
继承Thread类
继承Thread类是实现多线程的一种常用方法。如果说你只是想起一条线程,没有什么其他特殊的要求,那么可以使用Thread。下面是一个简单的示例代码:
```java
package MyThread;
public class ThreadT extends Thread {
private String name;
public ThreadT(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(name + "运行:" + i);
try {
sleep((long) (Math.random() * 10));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
ThreadT t1 = new ThreadT("A");
ThreadT t2 = new ThreadT("B");
t1.start();
t2.start();
}
}
```
这个示例代码中,我们定义了一个ThreadT类,继承自Thread类。我们在run方法中实现了线程的执行逻辑,在main方法中,我们创建了两个线程对象,并启动了它们。
线程的状态
线程有五个状态:创建、就绪、运行、阻塞、终止。创建状态是指线程刚刚被创建,但是还没有启动。就绪状态是指线程已经准备好,可以被执行了。运行状态是指线程正在执行。阻塞状态是指线程因为某些原因而被阻塞,例如等待输入输出操作。终止状态是指线程已经执行完毕。
线程的同步
线程的同步是指多个线程访问共享资源时,需要采取一定的措施来避免数据不一致的问题。Java提供了多种同步机制,例如synchronized关键字、Lock接口、Semaphore类等。
线程的通信
线程的通信是指多个线程之间的数据交换。Java提供了多种线程通信机制,例如wait和notify方法、BlockingQueue接口等。
Java多线程学习笔记主要记录多线程的一些基础概念,多线程简单的使用方式。我们学习了进程和线程的区别、多进程和多线程的概念、继承Thread类的方法、线程的状态、线程的同步和通信等知识点。