多线程-多线程内存图解

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();
    }
}

运行结果:



这篇关于多线程-多线程内存图解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程