java 线程快速入门(一) 之 第一个多线程程序

一般程序

我们之前的一般程序
Person.java

package thread;

public class Person {

    private String name;

    public Person() {}

    public Person (String name) {
        this.name = name;
    }

    public void run() {
        for (int i = 0;i < 20; i++) {
            System.out.println(name + i);
        }
    }

}

Demo.java

package thread;


/**
 *  主线程: 执行主方法(main方法)的线程
 *  单线程程序: Java程序中只有一个线程的程序
 *            从main方法中,从上到下依次执行
 *
 *
 *  对于单线程程序
 *  JVM执行main方法, main方法会进入到栈内存,
 *  JVM会找操作系统开辟一条main方法通向cpu的执行路径
 *  CPU就可以通过这条路径, 执行main方法
 *  这个路径就是main线程, 也就是主线程
 */

public class Demo01MainThread {

    public static void main(String[] args) {
        Person p1 = new Person("小强");
        p1.run();

        Person p2 = new Person("小明");
        p2.run();
    }
}

在这里插入图片描述
可以看到结果是按照顺序打印出来的,先执行p1 再执行p2

多线程程序

线程类: MyThread.java

package demo2Thread;

public class MyThread extends Thread {

    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println("test" + i);
        }
    }
}

主程序类 Demo.java

package demo2Thread;


/**
 * 创建多线程程序 我们可以继承Thread类的子类
 * java.lang.Thread类, 是描述线程的类, 我们可以继承Thread类来实现多线程
 *
 *  1. 创建一个Thread类的子类
 *  2. 在Thread类的子类中重写Thread类中的run方法, 设置线程任务(要执行的任务)
 *  3. 创建Thread类的子类对象
 *  4. 调用Thread类的start方法, 开启新的线程, 执行run方法
 *
 *  void start()  使该线程开始执行; Java虚拟机调用线程的run方法
 *
 *  两个线程并发执行, 当前线程 (main线程) 和 另一个线程 (刚刚创建的线程) 一起执行
 *  多次启动一个线程是非法的, 特别是当线程已经结束执行后, 不能重新启动
 *
 *  Java程序属于抢夺式占用
 */

public class Demo01Thread {

    public static void main(String[] args) {
        MyThread mt = new MyThread();
        mt.start();

        for (int i = 0; i < 20; i++) {
            System.out.println("main"+i);
        }
    }
}

可以看到结果
在这里插入图片描述
他是在两个线程之前来回切换,并发执行

线程类Thread的常用方法

1.getName() 获取线程名称

在这里插入图片描述
我们直接在run里边使用getName() 就可以获取线程名称
在这里插入图片描述
当然我们可以多写几个线程来看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用Thread的currentThread(); 来获取

在这里插入图片描述
道理一样,只不过多了一行代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值