Java 多线程 (Thread 类)

 1.多线程  


1.多线程实现

两种方式可以实现多线程:

  • 继承 Thread 类,重写 run 方法;定义对象,调用 start 方法
  • 创建类实现 Runnable 接口,作为实参传递给 thread 的构造方法。定义对象,调用 start 方法。

1.1.继承 Thread

  • 继承类,重写方法

class TDemo1 extends Thread {
    public String name; // 取个名字,便于识别

    public TDemo1 (String name) { // 构造方法
        this.name = name;
    }

    @Override
    public void run() { // 重写  run 方法
        show();
    }

    public void show() {
        System.out.println(name + ": talk show time");
    }
}

  • 创建对象,调用 start 方法启动线程

TDemo1 td1 = new TDemo1("梁宏达");
TDemo1 td2 = new TDemo1("李晨伟");
TDemo1 td3 = new TDemo1("窦文涛");
TDemo1 td4 = new TDemo1("备胎说车");

td1.start();
td2.start();
td3.start();
td4.start();

1.2.实现 Runnable

  • 实现接口

class TDemo2 implements Runnable {
    public String name; // 识别

    public TDemo2(String name) { // 构造方法
        this.name = name;
    }

    @Override
    public void run() { // 实现方法
        show();
    }

    private void show() {
        System.out.println(name + " 新媒体开播");
    }

} 

  • 创建对象,调用方法 start

Thread td1 = new Thread(new TDemo2("备胎说车"));
Thread td2 = new Thread(new TDemo2("30秒懂车"));
Thread td3 = new Thread(new TDemo2("汽车洋葱圈"));
Thread td4 = new Thread(new TDemo2("根叔说车"));

td1.start();
td2.start();
td3.start();
td4.start();

a

原文地址:https://www.cnblogs.com/argor/p/9076222.html

时间: 2024-10-12 11:58:05

Java 多线程 (Thread 类)的相关文章

探Java多线程Thread类和Runnable接口之间的联系

首先复习一下Java多线程实现机制,Java实现多线程方法有如下这么几种: 1.继承了(extends)Thread类 2.实现了(implements)Runnable接口 也就是说  有如下两种情况 情况1: 继承Thread类.重写其方法run() .    然后new之.调用Start()方法 1 public class TestThread 2 { 3 private int i; 4 public static void main(String[] args) 5 { 6 // T

Java 多线程——Thread类和Runable接口

在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: [java] view plaincopy package org.thread.demo; class MyThread extends Thread{ private String name; public

Java 线程--继承java.lang.Thread类实现线程

现实生活中的很多事情是同时进行的,Java中为了模拟这种状态,引入了线程机制.先来看线程的基本概念. 线程是指进程中的一个执行场景,也就是执行流程,进程和线程的区别: 1.每个进程是一个应用程序,都有独立的内存空间. 2.同一个进程中的线程共享其进程中的内存和资源. (共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的栈内存) 我们还需要了解以下基本内容: 1.什么是进程? 一个进程对应一个应用程序.例如:在Windows操作系统启动word就表示启动了一个进程.在Java开发环境下

Java多线程——Thread的native底层实现

Java多线程 当我们去阅读java的Thread类的时候,会发现这个类与大部分的java类库API有着明显的差别,它的所有关键方法都被声明为native. native本身指代的就是本地方法,而又由于java线程模型采用基于操作系统原生线程模型,这里默认Thread中native方式代指的是Native POSIX Thread Library. 线程的实现方式有三种:分别是内核线程实现(1:1实现),使用用户线程实现(1:N),使用用户线程加轻量级进程混合实现(N:M实现).而Java从1.

继承的方式创建多线程&Thread类的常用方法

创建多线程的一种方式:继承java.lang.Thread类 注意:1.一个线程只能执行一次start() 2.不能通过Thread实现类对象的 run()去启动一个线程 3.增加加一个线程,需要新创建一个线程的对象 Thread类的常用方法: 1.start():启动线程并执行相应的 run()方法 2.run():子线程要执行的代码放入run()方法中 3.currentThread():静态的,调取当前的线程 4.getName():获取此线程的名字 5.setName():设置此线程的名

2.匿名类,匿名类对象,private/protected/public关键字、abstract抽象类,抽象方法、final关键字的使用,多线程Thread类start方法原理

package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class TemplateThread { //如果这个方法不想被子类或者别人随意改动[这样子类就不能覆写该方法了],这里方法就要设置为final方法 public final void println(String message){ System.out.println("###################

java多线程系类:JUC线程池:01之线程池架构

概要 前面分别介绍了"Java多线程基础"."JUC原子类"和"JUC锁".本章介绍JUC的最后一部分的内容--线程池.内容包括:线程池架构图线程池示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509903.html 线程池架构图 线程池的架构图如下: 1. Executor 它是"执行者"接口,它是来执行任务的.准确的说,Executor提供了execute()接口来执行

java 多线程--- Thread Runnable Executors

java 实现多线程的整理: Thread实现多线程的两种方式: (1)继承 Thread类,同时重载 run 方法: class PrimeThread extends Thread { long minPrime; primeThread(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime } } PrimeThread p = new

Java多线程——ThreadLocal类

一.概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许把它命名为ThreadLocalVar更加合适.线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突. 从线程的角度看,每个线程都保持一个对其线程局

JAVA——多线程Thread

进程: 是一个正在执行中的程序.每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 线程: 就是进程中的一个独立的控制单元.线程在控制着进程的执行. 一个进程中至少有一个线程. Java VM启动的时候会有一个进程java.exe 该进程中至少一个线程负责java程序的执行.而且这个线程运行的代码存在于main方法中.该线程称为主线程. 扩展: 其实更细节说明JVM,JVM启动不止一个线程,还有负责 垃圾回收的线程. 1.如何在自定义的代码中,自定义一个线程呢? 通过对A