Java 多线程(浅谈)
一.多线程
- 多线程的使用
【Java 多线程(浅谈)】多线程的使用,可以编写出非常高效的程序。不过如果你创建太多的线程,程序执行的效率实际上是降低了,而不是提升了。
- 并发与并行
并发:指多个事件在同一个时间段内(10秒内)发生。
并行:多个事件在同一时刻发生(同时发生)。
- 线程与进程的区别
进程就是应用程序,每个进程里有多个线程。而线程是一组指令的集合,可以在程序里独立执行。
具体化理解:我们用的手机有多个APP,我想要边用网易云听歌边用idea写代码还想边用迅雷下载学习资料,然后用迅雷下载多个软件。在该案例里面可以把多个不同的的APP理解为进程,把迅雷里面的多个下载的任务理解为线程。
- 多线程的创建
多线程的创建有四种方法:
1.实现 Runnable 接口;
2.继承 Thread 类本身;
3.使用内部匿名类;
4.Callable 和 Future 创建线程。
但我们先只讲前三种。
class day1 dextends Thread {
【run方法中编写 多线程需要执行的代码】
publicvoid run() {
for (inti = 0;
i< 10;
i++) {
System.out.println("i:" + i);
}
}
}
二、实现Runnable接口,重写run方法
class day2 implements Runnable {
@Override
public void run() {
for (inti = 0;
i< 10;
i++) {
System.out.println("i:" + i);
}
}
}
三、使用内部匿名类
class day3{
public static void main(String[] args) {
Runnable r = new Runnable(){
public void run(){
for (int i = 0;
i < 20;
i++) {
System.out.println("琉西亚"+i);
}
}
};
new Thread(r).start();
for (int i = 0;
i < 20;
i++) {
System.out.println("刘欣雨"+i);
}
}
}
注意:
实现Runnable接口比继承Thread类好:
- 可以多个相同的线程去共享同一个资源。
- 可以避免java中的单继承的局限性。
- 增加程序的健壮性,实现解耦操作。
- 多线程的运行状态转换图
文章图片
当new一个线程时为新建状态,当调用start方法返回时为就绪状态,当CPU调用run方法时处于运行状态,当处于阻塞状态时可能为调用sleep、调用I/O被阻塞,调用完run方法为死亡状态。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 爱就是希望你好好活着
- 昨夜小楼听风
- 知识
- 死结。
- 我从来不做坏事
- 烦恼和幸福
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 事件代理