java中级
2022/6/7 1:20:44
本文主要是介绍java中级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java多线程
基础概念
- 多进程与cpu:
cpu有几核就能开多少真实的进程,超过的就变成了模拟进程,即一个核可能开几个进程,但其实是通过在多个进程之间切换实现的。 - 多线程与cpu
进程中的多个线程谁先去cpu执行是系统控制的,人干预不了。
继承Thread类(不推荐使用):继承类实现子线程
-
说明:
继承了Thread类并改写run方法就相当于创建了一个子线程方法 -
示例:
public class test1 extends Thread { @Override public void run(){ //run方法体 for (int i = 0; i < 5; i++){ System.out.println("run执行"+i); } } }
-
通过start方法调用子线程方法,通过子线程运行:运行结果就是主线程的和子线程的结果交替出现,即两个线程都在执行,至于那个具体执行那个是系统调度
public class test1 extends Thread { @Override public void run(){ //run方法体 for (int i = 0; i < 5; i++){ System.out.println("run执行"+i); } } public static void main(String[] args){ test1 testThead = new test1(); // 实例化 testThead.start(); // 调用子线程方法run //主线程的方法体 for (int i = 0; i < 200; i++){ System.out.println("main执行"+i); } } }
如果不用start方法,而是直接换成run,即
testThead.run();
,就相当于没有启动子线程,而是直接调用run方法,那就按顺序先执行run再执行主线程的方法体。start就相当于告诉系统,start的方法要在子线程中执行。如果有几个start启动的子线程,这些子线程的运行顺序是同样是不固定的。
调用Runable接口:调用接口实现子线程
- 说明
上面的类实现子线程,存在java单继承的问题,所以通过接口实现子线程就可以拥有接口可以多调用的好处。本质上Thread类也是在Runable接口上实现的。所以Runable接口实现多线程更灵活。 - 示例
调用Runnable接口同样需要改写run方法public class test2 implements Runnable{ @Override public void run(){ //run方法体 for (int i = 0; i < 5; i++){ System.out.println("run执行"+i); } }
- 通过接口start子线程:但还是需要Thread类的start方法
public class test2 implements Runnable{ @Override public void run(){ for (int i = 0; i < 5; i++){ System.out.println("run执行"+i); } } public static void main(String[] args){ test2 testThead = new test2(); // 先实例化接口类 Thread t1 = new Thread(testThead); // 再实例化Thread类并将接口类作为参数 t1.start(); // 通过Thread类start // 上面两行可以简写成new Thread(testThead).start() //主线程 for (int i = 0; i < 200; i++){ System.out.println("main执行"+i); } } }
线程常用方法
- 起名字
- 获得当前线程名称
这篇关于java中级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南