java多线程的4种实现方式

1,继承Thread类,重写run方法;

public class Thread01 extends Thread{
    public Thread01(){
    }
    public void run(){
        System.out.println(Thread.currentThread().getName());
    }
    public static void main(String[] args){
        Thread01 thread01 = new Thread01();
        thread01.setName("继承Thread类的线程1");
        thread01.start();
        System.out.println(Thread.currentThread().toString());
    }
}

2,实现Runnable接口,重写run方法;

public class Thread02 {

    public static void main(String[] args){
        System.out.println(Thread.currentThread().getName());
        Thread t2 = new Thread(new MyThread02());
        t2.start();
    }
}
class MyThread02 implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"2--实现Runnable接口的线程实现方式");
    }
}

3,实现Callable接口通过FutureTask包装器来创建Thread线程;

4,通过线程池创建线程;

public class Thread04 {

    private static int POOL_NUM =10;

    public static void main(String[] args)throws InterruptedException {
        ExecutorService executorService = Executors.newFixedThreadPool(5);
        for (int i = 0; i < POOL_NUM; i++) {
            RunnableThread  runnable =new  RunnableThread ();
            executorService.execute(runnable);
        }
        executorService.shutdown();
    }

}
class RunnableThread  implements Runnable{
    @Override
    public void run()
    {
          System.out.println("4--通过线程池创建的线程:" + Thread.currentThread().getName() + " ");
    }
}  

原文地址:https://www.cnblogs.com/yuiqng/p/9321648.html

时间: 2024-10-11 07:07:03

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

Java多线程的两种实现方式:继承Thread类 &amp; 实现Runable接口

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! 创建和启动线程的两种传统方式: Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法: ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法.

java多线程的3种实现方式

多线程相关的问题 1.什么是进程? ? 正在执行的程序 2.什么是线程? ? 进程的子单位,一个能够完成独立功能的执行路径 3.为什么需要开启多线程? 当执行某些耗时操作的任务的时候需要开启多线程,防止线程阻塞 能够让两个任务看起来像是在同时执行 提高CPU的使用率,进而提高进程和内存的使用率 4.为什么开启多线程会同时执行? ? 因为CPU切换执行的速度太快了,肉眼无法差距 5.开启多线程是不是越多越好,提高了效率还是降低了效率? ? 不是,线程越多,效率越慢,但是太少,浪费CPU资源,所以,

Java多线程的两种实现方式的区别以及深刻同步问题中的锁对象

首先我们知道创建线程有两种方式: 1.继承Thread类:2.实现Runnable接口. 但是这两这并非完全一样的.下面谈谈区别: 因为Java并不支持多继承的(接口是可以多继承接口的.不过一般我们不提),但支持多实现.当一个类继承了父类,就不能再继承Thread类,只能通过实现接口的形式创建线程. 继承Runnable接口更加符合面向对象的思想.线程分为两部分,一是线程对象,二是线程任务.继承Thread类,线程对象和线程任务(run方法内的代码)耦合在一起.一旦创建了Thread类的子类对象

java多线程的几种实现方式记录

传统的实现线程的方式为三种,分别为继承Thread类,重写run()方法:实现Runable接口,重写run()方法:实现callable接口,重写call()方法:下面来记录一下最基本的三种编码实现. 一.继承Thread public class ExtendsThread extends Thread{ public void run(){ System.out.println("Hello Thread"); } public static void main(String[]

java 多线程编程三种实现方式

一种是继承Thread类,一种是实现Runable接口,还有一种是实现callable接口: 有博主说只有前面2种方式,我个人愚见是三种,主要详细介绍下callable的使用: 三种线程的我的个人理解: thread 是最简单的,简单粗暴也是最基础的,复写run()方法,start启动就好了: runable 是thread基础上的改进版本runable 主要的贡献在于实现了资源的共享,比如说在线选座的座位资源就需要共享这个时候就一定要使用runable,但是他也需要thread 的帮忙: ca

Java 多线程的两种实现方式

继承Thead class IphoneThread extends Thread { public int iphone = 5; public String user; public IphoneThread(String str) { user = str; } @Override public void run() { while (iphone != 0) { iphone--; System.out.println(user + " get one and left iphone n

【Java多线程】两种基本实现框架

Java多线程学习1——两种基本实现框架 一.前言 当一个Java程序启动的时候,一个线程就立刻启动,改程序通常也被我们称作程序的主线程.其他所有的子线程都是由主线程产生的.主线程是程序开始就执行的,并且程序最终是以主线程的结束而结束的. Java编写程序都运行在在Java虚拟机(JVM)中,在JVM的内部,程序的多任务是通过线程来实现的.每用Java命令启动一个Java应用程序,就会启动一个JVM进程.在同一个JVM进程中,有且只有一个进程,就是它自己.在这个JVM环境中,所有程序代码的运行都

JavaLearning:多线程的两种实现方式

第一种 继承Thread类 package org.fan.threaddemo; public class MyThread extends Thread{ private String name; public MyThread(String name){ this.name=name; } public void run(){//覆写run()方法 for(int i=0;i<30;i++){ System.out.println("Thread运行:"+this.name

实现Java多线程的三种方式

1. JAVA多线程实现方式    JAVA多线程实现方式主要有三种: 继承Thread类 实现Runnable接口 使用ExecutorService.Callable.Future实现有返回结果的多线程. 其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的. 2. 继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式,但 Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread