一.多线程第一种方式的实现步骤(继承Thread类)

  代码演示:

    1.定义MyThread类,继承Thread类

    2.重写了里面的run方法,在run方法中定义线程要执行的任务

public class MyThread extends Thread{
@Override
public void run() { //run方法内是子线程要执行的代码
for(int i = 1; i <= 100; i++) {
System.out.println("HelloJava:" + i);
}
}
}

    3.创建Thread子类对象

    4.调用子类对象的start方法,启动线程

public class Demo01Thread {
public static void main(String[] args) {
System.out.println("main...start");
//创建Thread子类对象
MyThread mt = new MyThread();
//调用start方法启动线程
mt.start(); System.out.println("main....end");
}
}

    上面两块代码,会开启子线程,并运行子线程中的run方法

二.Thread中的常见方法:  

  构造方法:  

    public Thread(String name): 传递一个线程的名字

  成员方法:

    void setName(String name): 给线程设置名字

    String getName(): 获取线程的名字

    (重要) static Thread currentThread(): 获取当前正在运行的线程

    (重要) static void sleep(long mills): 线程休眠,参数为休眠的时间,单位是毫秒

  代码演示部分Thread方法:

    1.创建MyThreadMethod类继承Thread类,并重写内部run方法

public class MyThreadMethod extends Thread{
public MyThreadMethod() {} public MyThreadMethod(String name) {
super(name); //调用父类一个参数是字符串的构造方法,将线程名字进行传递。
} //在run方法中定义线程要执行的任务
@Override
public void run() {
//setName("旺财");
System.out.println("新线程执行了");
//MyThreadMethod 是Thread的子类,所以在这个方法中能够直接调用getName获取线程的名字。
System.out.println("新线程的名字是:" + getName());
}
}

    2.演示方法currentThread方法和getName方法

public class Demo02ThreadMethod {
public static void main(String[] args) {
//创建Thread子类对象,并且运行这个线程
MyThreadMethod mtm = new MyThreadMethod("如花"); //mtm.setName("狗蛋"); mtm.start(); //获取main线程的名字
//获取当前正在运行的线程对象,再通过这个线程对象调用getName方法,获取线程名字
//这个currentThread方法是由哪个线程执行的,那么获取到的就是哪个线程对象。
Thread t = Thread.currentThread();
System.out.println("main线程的名字是:" + t.getName()); }
}

  上面代码运行结果是:

    新线程执行了
    新线程的名字是:如花
    main线程的名字是:main

    

    

多线程之 Thread类的更多相关文章

  1. (转)多线程——继承Thread 类和实现Runnable 接口的区别

    java中我们想要实现多线程常用的有两种方法,继承Thread 类和实现Runnable 接口,有经验的程序员都会选择实现Runnable接口 ,其主要原因有以下两点: 首先,java只能单继承,因此 ...

  2. 多线程:Thread类的Join()方法

    多线程:Thread类的Join()方法 http://blog.163.com/hc_ranxu/blog/static/3672318220095284513678/ 当我们在线程B中调用Thre ...

  3. Java多线程01(Thread类、线程创建、线程池)

    Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于 ...

  4. Java中实现多线程继承Thread类与实现Runnable接口的区别

    Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 在实际应用中, ...

  5. 多线程——继承Thread类实现一个多线程

    继承Thread类实现一个多线程 Thread类部分源码: package java.lang; //该类实现了Runnable接口 public class Thread implements Ru ...

  6. Java 多线程 (Thread 类)

    1.多线程 2.卖票 1.多线程实现 两种方式可以实现多线程: 继承 Thread 类,重写 run 方法:定义对象,调用 start 方法 创建类实现 Runnable 接口,作为实参传递给 thr ...

  7. Java 多线程之 Thread 类 和 Runnable 接口初步使用

    目录 Thread 类 Thread之定义线程类 Thread之开启线程 Runnable 接口 Runnable 之定义线程类 Runnable 之开启线程 @ Thread 类 Thread 类是 ...

  8. 多线程, Thread类,Runnable接口

    多线程 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程.一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序. 单线程程序:即,若有多个任务只能依次执 ...

  9. java多线程技能-使用多线程-继承Thread类

    /* 使用多线程可通过继承Thread类或实现Runnable接口. Thread和Runnable的关系:public class Thread implements Runnable. 使用thr ...

随机推荐

  1. 打包加载 AssetBundle

    1.先创建Asset序列化(单个文件夹所在文件夹路径,会遍历这个文件夹所有的Prefab,所有的Prefab名字不能重复,必须保证名字得唯一性),配置好ConfigAB表 /* ######### # ...

  2. company_credit

    /** * Created by wu-yj on 2016/5/6. */ import java.sql.{Connection, DriverManager, PreparedStatement ...

  3. jmeter需要学习的其他点

    jmeter知识点访问地址参数化http请求默认值远程连接非GUI运行测试命令jmeter参数设置jmeter常用脚本开发 Beanshell sampleDebug SampleFtp请求java请 ...

  4. log4.net使用指南

    1.简介 1.1 Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断 ...

  5. document.getElementById动态的Node集合随时变化, 和document.querySelector静态的后续无法变化

    1. W3C 标准querySelectorAll 属于 W3C 中的 Selectors API 规范 [1].而 getElementsBy 系列则属于 W3C 的 DOM 规范 [2]. 2. ...

  6. Unity --- 如何简单的判断图片是否含有 alpha channel

    var texImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter; if (texImporter.DoesSourceT ...

  7. springboot缓存注解——@Cacheable和@CacheConfig

    @Caching :制定多个缓存规则 @Cacheable 和 @CachePut 同时标注时 ,@CachePut导致还是会走方法跟数据库交互 //根据lastName查,并将结果缓存,并且可以用于 ...

  8. [数据结构] 2.2 Huffman树

    注:本文原创,转载请注明出处,本人保留对未注明出处行为的责任追究. 1.Huffman树是什么 Huffman树也称为哈夫曼编码,是一种编码方式,常用于协议的制定,以节省传输空间. A - F字母,出 ...

  9. Spring Cloud ----> 几个组件的总结

    Spring Cloud Eureka 多个服务,对应多个Eureka Client 只有一个Eureka Server ,充当注册中心的角色每个Eureka Client 有ip 地址和端口号,它们 ...

  10. AutoField的话就报错:'AutoField' object has no attribute 'rel'

    def data_inspect(self, data, extra=None): if isinstance(data, (QuerySet, Page, list)): convert_data ...