多线程-多线程内存图解
2022/7/11 5:21:23
本文主要是介绍多线程-多线程内存图解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
多线程图解
Thread类的使用
我们在操作Thread类 API中该类中定义了有关线程的一些方法 具体如下
构造方法:
- public Thread():分配一个新的线程对象
- public Thread(String name):分配一个指定名字的新的线程对象
- public Thread(Runnable target):分配一个带有指定目标新的线程对象
- public Thread(Runnable target,String name):分配一个带有指定目标新的线程对象并指定名字
常用方法:
-
public String getName():获取当前线程名称
-
public void start():导致此线程开始执行;java虚拟机调用此线程的run方法
-
public void run():此线程要执行的任务在此处定义代码
代码:
//继承Thread类的子类 public class DemoMyThread extends Thread { //2.在Thread的子类中重写Thread类中的run方法 设置线程任务 @Override public void run() { String name = getName(); System.out.println(name); } } class test01{ public static void main(String[] args) { //3.创建Thread类的子类对象 DemoMyThread my = new DemoMyThread(); //4.调用Thread类中的发AN官方start方法 开启新的线程 执行run方法 my.start(); DemoMyThread my1 = new DemoMyThread(); my1.start(); } }
运行结果:
-
public static void sleep(long millis):使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)
代码:
public class DemoMyThread01 extends Thread { @Override public void run() { for (int i = 0; i <20; i++) { System.out.println("线程"+i); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } } } class test02{ public static void main(String[] args) { DemoMyThread01 my = new DemoMyThread01(); my.start(); } }
-
public static Thread currentThread():返回对当前正在执行的线程对象的引用
代码:
public class DemoMyThread02 extends Thread { @Override public void run() { System.out.println(Thread.currentThread()+"执行了"); } } class test03{ public static void main(String[] args) { DemoMyThread02 my = new DemoMyThread02(); my.start(); } }
运行结果:
设置线程的名称
1.使用Thread类中的方法setName(名字)
void setName(String name) 改变线程名称 使之与参数 name相同
2.创建一根带参数的构造方法 参数传递线程的名称 调用父类的带参构造方法 把线程名称传递给父类 让父类(Thread)给子线程起一个名字
Thread(String name)分配的Thread对象
代码
public class DemoGetname extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName()+"执行了"); } } class test04{ public static void main(String[] args) { DemoGetname nam = new DemoGetname(); nam.setName("线程1"); nam.start(); DemoGetname nam2 = new DemoGetname(); nam2.setName("线程2"); nam2.start(); } }
运行结果:
这篇关于多线程-多线程内存图解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略