1.–扩展java.lang.Thread类

package multiThread;

public class Thread02extThread {

    public static void main(String[] args) {
        BoilThread boilThread = new BoilThread();
        boilThread.start();
        WashThread washThread = new WashThread();
        washThread.start();
    }
}

class BoilThread extends Thread { // 烧开水的线程
    public void run() {
        Thread tMain = Thread.currentThread();
        System.out.println("当前运行的线程是:" + tMain);

        // 假设烧水需要10秒
        try {
            System.out.println("开始烧水...");
            Thread.sleep(10000);
            System.out.println("水烧开了。");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

class WashThread extends Thread { // 洗茶杯的线程
    public void run() {
        Thread tMain = Thread.currentThread();
        System.out.println("当前运行的线程是:" + tMain);
        try {
            for (int i = 1; i <= 5; i++) { // 洗5个茶杯
                System.out.print("开始洗第" + i + "个茶杯...");
                Thread.sleep(1500); // 假设每洗一个茶杯需要1.5秒
                System.out.println("第" + i + "个茶杯洗干净。");
            }
        } catch (InterruptedException ie) {
            ie.printStackTrace();
        }
    }
}

2.–实现java.lang.Runnable接口

package multiThread;
public class Thread0302impRunable {

    public static void main(String[] args) {
        降龙掌 r = new 降龙掌();
        Thread t1 = new Thread(r);
        t1.start();
        Thread t2 = new Thread(r);
        t2.start();
        Thread t3 = new Thread(r);
        t3.start();
    }
}

class Kongfu {
    public void Fight() {
        System.out.println("打人");
    }
}

class 降龙掌 extends Kongfu implements Runnable{
    @Override
    public void run() {
        super.Fight();
        System.out.println("亢龙有悔");
    }

}

JAVA·多线程:创建线程的两种方式的更多相关文章

  1. Java多线程——创建线程的两种方式

    创建线程方式一:继承Thread类. 步骤:1,定义一个类继承Thread类.2,覆盖Thread类中的run方法.3,直接创建Thread的子类对象创建线程.4,调用start方法开启线程并调用线程 ...

  2. Java中创建线程的两种方式

    创建线程的第一种方式: 创建一个类继承Thread 重写Thread中的run方法 (创建线程是为了执行任务 任务代码必须有存储位置,run方法就是任务代码的存储位置.) 创建子类对象,其实就是在创建 ...

  3. Java值创建线程的两种方式对比

    在Java中创建线程的方式有两种,第一种是直接继承Thead类,另一种是实现Runable接口.那么这两种方式孰优孰劣呢? 采用继承Thead类实现多线程: 优势:编写简单,如果需要访问当前线程,只需 ...

  4. Java 多线程 创建线程的4种方式

    1 继承Thread类,重写run方法.Thread类实现了Runnable接口. 2 实现Runnable接口,重写run方法.相比于继承Thread类,可以避免单继承的缺陷和实现资源共享. 举例: ...

  5. Java多线程-----创建线程的几种方式

       1.继承Thread类创建线程 定义Thread类的子类,并重写该类的run()方法,该方法的方法体就是线程需要完成的任务,run()方法也称为线程执行体 创建Thread子类的实例,也就是创建 ...

  6. 【Java】创建线程对象两种方式

    1.继承Thread类,重载run方法: Thread t = new Thread(new Runnable() { @Override public void run() { // TODO Au ...

  7. 【java并发】传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

  8. 创建线程的两种方式比较Thread VS Runnable

    1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 public class MyThread extends Thread{ @Override public vo ...

  9. 0036 Java学习笔记-多线程-创建线程的三种方式

    创建线程 创建线程的三种方式: 继承java.lang.Thread 实现java.lang.Runnable接口 实现java.util.concurrent.Callable接口 所有的线程对象都 ...

  10. java 多线程之卖票两种方式

    1.通过extends Thread /* 需求:简单的卖票,多个窗口同时买票 (共用资源) 创建线程的第二种方式:实现Runnable接口 步骤: 1,定义类实现Runnable接口 2,覆盖/重写 ...

随机推荐

  1. Flink - RocksDBStateBackend

    如果要考虑易用性和效率,使用rocksDB来替代普通内存的kv是有必要的 有了rocksdb,可以range查询,可以支持columnfamily,可以各种压缩 但是rocksdb本身是一个库,是跑在 ...

  2. Dell PowerVault TL4000 磁带机卡带问题

    最近一段时间Dell PowerVault TL4000 磁带机故障频繁,昨天我在管理系统里面看到Library Status告警:HE: sled blocked, error during sle ...

  3. Snappy压缩

    Snappy压缩时,碰到不能解压问题,所用服务器Tomcat8.经验证,降低Tomcat版本为7,才可正常解压文件. 若碰到偶尔不能解压的问题,试着换个浏览器试试.

  4. 受限玻尔兹曼机RBM

    相关算法 python代码参考http://blog.csdn.net/zc02051126/article/details/9668439#(作少量修改与注释) #coding:utf8 impor ...

  5. label WordWrap

    procedure TForm1.FormCreate(Sender: TObject);begin    Label1.AutoSize := False;    Label1.WordWrap : ...

  6. jQuery功能一览

    // Hello world!"); }); $("#btn5").click(function(){ $("#test5").val("D ...

  7. 树:BST、AVL、红黑树、B树、B+树

    我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree).这四种树都具备下面几个优势: (1) 都是动态结构.在删除,插入操 ...

  8. 使用ReTrofit做缓存(结合上拉加载和下拉刷新)

    1. noCache 不使用缓存,全部走网络 2. noStore 不使用缓存,也不存储缓存 3. onlyIfCached 只使用缓存 4. maxAge 设置最大失效时间,失效则不使用 需要服务器 ...

  9. 五:Java之Vector类专题

    据说期末考试要考到Vector 这个类,出于复习须要在这里就要好好整理下这个类了. 一.基本概念 Vector 是可实现自己主动增长的对象数组. java.util.vector提供了向量类(vect ...

  10. function前加运算符实现立即执行函数

    我们知道函数的调用方式通常是FunctionName() 但如果我们尝试为一个"定义函数"末尾加上(),解析器是无法理解的. function msg(){ alert('mess ...