java基础之线程的两种实现方式

潇湘剑雨 潇湘剑雨     2022-08-02     580

关键词:

    进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程!线程总是属于某个线程,进程中的线程共享进程的内存

    注意:对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称(和签名)。因此,在Runnable上或者Thread上调用run方法是合法的。但并不启动新的线程,启动新的线程要调用start()方法

    在Java中提供了两种方式实现线程:1、继承Thread类 

package unit_fifteen;

public class TestThread extends Thread {
    private String name;

    public TestThread(String name) {
        this.name = name;
    }

    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 2; j++) {
                System.out.println(name + ":" + i);
            }
        }
    }
    //继承Thread类
    public static void main(String[] args) {
        //可以创建没有命名的线程
        TestThread tone = new TestThread("阿三");
        TestThread ttwo = new TestThread("李四");
        tone.start();
        ttwo.start();
    }

}  

    2、实现Runnable接口

package unit_fifteen;

public class TestRunnnable implements Runnable {

    public static void main(String[] args) {
        //实现Runnable接口,可以创建没有命名的线程
        TestRunnnable dsone = new TestRunnnable("阿三");
        TestRunnnable dstwo = new TestRunnnable("李四");
        //以实现了Runnable接口的类的对象作为参数创建Thread对象
        Thread tone = new Thread(dsone);
        Thread ttwo = new Thread(dstwo);
        tone.start();
        ttwo.start();
    }

    private String name;

    public TestRunnnable(String name) {
        this.name = name;
    }

    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 2; j++) {
                System.out.println(name + ":" + i);
            }
        }
    }

}

 

     

java基础——多线程的两种实现方式

第一种实现方式:继承Thread类,并实现run方法,这种情况下每个线程对象都有一个独立的run方法packagethread;/*@authorzsben@create2020-01-039:52多线程创建的第一种方法:继承于Thread类1.创建一个继承于Thread的类2.重写Thread类的run方法-->... 查看详情

java实现多线程的两种方式

1.继承Thread类publicclassDemo1{publicstaticvoidmain(String[]args){MyThreadmt=newMyThread();mt.start();for(inti=0;i<1000;i++){System.out.println("bbb");}}}classMyThreadextendsThread{@Overridepublicvoid 查看详情

java实现多线程的两种方式

Java需要并发控制三个原因:多线程环境存在共享资源多个线程操作(修改)共享资源下面分别用继承Thread类和实现Runnable接口俩种方式实现并发控制,继承Thread类继承Thread类方式,最后创建对象是因为会是三个不同的线程对象,... 查看详情

18.2实现线程的两种方式(代码片段)

一、概述   在Java中主要提供两种方式实现线程,分别为继承java.lang.Thread类与实现java.lang.Runnable接口。二、继承Thread类   a、Thread类是java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建... 查看详情

go基础系列:go实现工作池的两种方式(代码片段)

workerpool简介workerpool其实就是线程池threadpool。对于go来说,直接使用的是goroutine而非线程,不过这里仍然以线程来解释线程池。在线程池模型中,有2个队列一个池子:任务队列、已完成任务队列和线程池。其中已完成任务队列可... 查看详情

java创建线程的两种方法

大多数情况,通过实例化一个Thread对象来创建一个线程。Java定义了两种方式:实现Runnable接口;可以继承Thread类。下面的两小节依次介绍了每一种方式。实现Runnable接口创建线程的最简单的方法就是创建一个实现Runnable接口的类... 查看详情

java中创建线程的两种方式有啥区别

java中创建线程的两种方式有什么区别参考技术A一种是继承Thread类,一种是实现Runnable接口,需要重写或者实现run()方法。没啥区别,因为java是单继承的,所以不可能让所有的类都继承Thread类,所以必须有这个Runnable接口。一般来... 查看详情

实现多线程的两种方式(代码片段)

...ead类实现了Runnable,由于java中不支持多继承,所以实现多线程时,可以采用实现Runnable的方式。2.实现Runnable接口。 注意一下声明与调用不仅仅只是new一下,start一下,而是new两下,start一下:publicclassMyRunn 查看详情

多线程之线程间协作的两种方式:waitnotifynotifyall和condition

Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition  在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间... 查看详情

java创建线程的两种方式

方式继承Thread类实现Runnable方法实例#继承Thread类publicclassThreadTest2extendsThread{privateintthreadCnt=10;@Overridepublicvoidrun(){while(true){if(threadCnt>0){System.out.println(Thread.currentThread().getName( 查看详情

java多线程基础(代码片段)

目录实现多线程的两种基础方式方式一:继承Thread类方式二:实现Runnable接口线程常用方法线程优先级设置线程的插队和礼让线程的中断守护线程 线程同步多线程时间比较实现多线程的两种基础方式方式一:继承Threa... 查看详情

java中实现多线程的两种方式(代码片段)

Java中对于对于多线程的实现主要提供了两种方法继承Thread()类实现Runnable接口接下来从这两个方面进行说明相关知识。继承Thread()类写一个类直接继承Thread()类,然后重写Thread()类的run()方法,调用其start()方法即可启动线程... 查看详情

线程的两种实现方式(代码片段)

线程的两种实现方式(1)继承Thread类``/***继承Thread类**/publicclassPayThreadextendsThread@Overridepublicvoidrun()System.out.println("继承Thread");publicstaticvoidmain(String[]args)ThreadpayThread=newPayThread();payT 查看详情

java多线程带你用不一样的思维看创建线程的两种方式(代码片段)

文章目录创建线程的两种方式start和run方法解析彩蛋:同时用两种方法来实现同一个线程,会遇到什么小知识:调用start方法,线程就会立刻启动吗?创建线程的两种方式通过实现Runnable接口publicclassCreateThread//继承Th... 查看详情

java多线程带你用不一样的思维看创建线程的两种方式(代码片段)

文章目录创建线程的两种方式start和run方法解析彩蛋:同时用两种方法来实现同一个线程,会遇到什么小知识:调用start方法,线程就会立刻启动吗?创建线程的两种方式通过实现Runnable接口publicclassCreateThread//继承Th... 查看详情

线程的两种实现方式(代码片段)

线程有两种实现方式一,Thread类  publicclassThreadimplementsRunnable  二,Runnable接口  publicinterfaceRunnable    publicabstractvoidrun();  区别:Thread是一个类,他继承了runnable接口,而runnable是一个接口,一个类只能有一个父类... 查看详情

java的两种同步方式,synchronized与reentrantlock的区别

  java在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和重入锁ReentrantLock。相似点:    这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是... 查看详情

线程实现的两种方式及区别(代码片段)

我们来用最经典的卖票的案例,表明两种实现方式的区别,同时分析线程不安全产生的原因一、继承Thread类packagetest;/***@Description*@Authorshusheng*@Email[email protected]*@Date2018/8/31*/publicclassSellTicketOneextendsThreadprivatestaticintticke 查看详情