实现多线程的两种方式

1.继承Thread类。

源码结构:public class Thread implements Runnable

从中可以看出Thread类实现了Runnable,由于java中不支持多继承,所以实现多线程时,可以采用实现Runnable的方式。

2.实现Runnable接口。

注意一下声明与调用不仅仅只是new一下,start一下,而是new两下,start一下:

public class MyRunnable implements Runnable {
    public void run() {
        System.out.println("运行中!");
    }
}
public class MainTest {

    public static void main(String[] args) {
        Runnable runnable = new MyRunnable();
        Thread thread = new Thread(runnable);
        thread.start();
    //    runnable.run();这种调用不会启动线程,只是单纯的方法调用
        System.out.println("运行结束!");
    }

}

原文地址:https://www.cnblogs.com/cing/p/8933519.html

时间: 2024-11-08 23:54:42

实现多线程的两种方式的相关文章

Java实现多线程的两种方式

实现多线程的两种方式: 方式1: 继承Thread类 A: 自定义MyThread类继承Thread类 B: 在MyThread类中重写run() C: 创建MyThread类的对象 D: 启动线程对象. 问题: a. 为什么要重写run方法? run()方法里封装的是被线程执行的代码 b. 启动线程对象用的是哪个方法? start()方法 c. run()和start()方法的区别? 直接调用run方法只是普通的方法调用 调用start方法先会启动线程,再由jvm调用run()方法 方式2:

java 实现多线程的两种方式

一.问题引入 说到这两个方法就不得不说多线程,说到多线程就不得不提实现多线程的两种方式继承Thread类和实现Runable接口,下面先看这两种方式的区别. 二. Java中实现多线程的两种方式 1.  继承Thread类 /** * 使用Thread类模拟4个售票窗口共同卖100张火车票的程序,实际上是各卖100张 */ public class ThreadTest { public static void main(String[] args){ new MyThread().start(

Java中实现多线程的两种方式之间的区别

Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法:  ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法. 为什么Java要提供两种方法来创建线程呢?它们都有哪些区别?相比而言,哪一种方法更好呢? 在Java中,类仅支持单继承

实现多线程的两种方式,卖票场景,亲测可用

写在开始 卖票场景: 多线程共同卖票,总票数在多个卖票窗口共享 实现方式: 1继承Thread类: 2实现Runnable接口 正文开始 方式1 Thread继承 package com.example.demo; /** * @Description: * @Author:tianminghai * @Date:2:55 PM 2018/10/24 */ public class ThreadDemo extends Thread { private static int ticket = 1

Java多线程:常用的实现多线程的两种方式

之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程池的内容,我们以后会详细介绍;现在,先对的Thread和Runnable进行了解.本章内容包括: Thread和Runnable的简介 Thread和Runnable的异同点 Thread和Runnable的多线程的示例 Thread和Runnable简介 Runnable 是一个接口,该接口中只包含了一个run()方法.它的定义如下: public interface Runnabl

2.常用的实现多线程的两种方式

Thread和Runnable简介 Runnable 是一个接口,该接口中只包含了一个run()方法.它的定义如下: public interface Runnable { public abstract void run(); } Runnable的作用,实现多线程.我们可以定义一个类A实现Runnable接口:然后,通过new Thread(new A())等方式新建线程. Thread 是一个类.Thread本身就实现了Runnable接口.它的声明如下: public class Thr

多线程 编写多线程的两种方式

1.通过继承Thread编写多线程类 1 package org.zln.thread; 2 3 import java.util.Date; 4 5 /** 6 * Created by coolkid on 2015/6/21 0021. 7 */ 8 public class TestThread extends Thread{ 9 private int time;//休眠时间 10 private String user;//调用用户 11 12 public TestThread(i

Java中实现多线程的两种方式

/**  * 使用Thread类模拟4个售票窗口共同卖100张火车票的程序  *   * 没有共享数据,每个线程各卖100张火车票  *   * @author jiqinlin  * */public class ThreadTest {    public static void main(String[] args){        new MyThread().start();        new MyThread().start();        new MyThread().st

启动多线程的两种情况比较

启动多线程有两种方式:(都是在主线程main线程下) 1. 使用同一个线程对象来启多个线程 2. 使用多个线程对象来启多个线程 这两种方式有什么区别呢?先贴上代码举例说明: 这是使用线程对象MyRunnable的同一个实例r来启动了两个线程 MyRunnable r = new MyRunnable(); Thread ta = new Thread(r,"Thread-A"); Thread tb = new Thread(r,"Thread-B"); ta.st