JAVA创建线程的两种方式

好记性不如赖笔头…………

创建线程有两种方式:

1、 继承Thread类,重写run方法,run方法内部写入线程执行的具体代码,创建线程时代码如下:

//创建线程
Thread thread = new Thread;
//启动线程
thread.start();

2、 实现Runnable接口,重写run方法,run方法内部写入线程执行的具体代码,创建线程时,代码如下

//假设Demo类实现了Runnable接口,创建线程的方式如下:
Demo demo = new Demo();
Thread thread = new Thread(demo);
//启动线程:
thread.start();

//上面的代码可以简写为
Thread thread = new Thread(new Demo());
thread.start();

注意:启动线程时使用的是start()方法,而不是run(),如果使用的是run(),并没有启动线程,而是直接执行的run()方法而已。

-------------------------------------------------------------------------第一种线程创建方式-------------------------------------------------------------------------

package com.Ckinghan.thread;

/**
 * @描述:第一种线程创建方式,继承Thread类,重写run方法,在run方法中,写入线程的具体执行过程
 * @创建时间:
 */
public class FirstThread extends Thread {

    @Override
    public void run() {
        for(int i = 0; i < 30; i ++){
            System.out.println(this.getName()+"--HelloThread---"+i);
        }
    }
}

-------------------------------------------------------------------------第二种线程创建方式-------------------------------------------------------------------------

package com.Ckinghan.thread;

/**
 * @描述:第二种线程创建方式,实现Runnable接口,重写run方法,在run方法中,写入线程的具体执行过程
 * @创建时间:
 */
public class FirstThread2 implements Runnable {

    @Override
    public void run() {
        for(int  i = 0; i < 30; i++){
            System.out.println(Thread.currentThread().getName()+"--HelloThread2---"+i);
        }

    }

}


-------------------------------------------------------------------------测试启动线程-------------------------------------------------------------------------

package com.Ckinghan.thread;

public class FirstThreadDemo {

    public static void main(String[] args) {
        /**
         * 第一种线程创建方式,继承Thread类,重写run方法,在run方法中,写入线程的具体执行过程
         */
        createFirstThread();

        /**
         * 第二种线程创建方式,实现Runnable接口,重写run方法,在run方法中,写入线程的具体执行过程
         */
        createFirstThread2();

    }

    /**
     * @描述:第二种线程创建方式,实现Runnable接口,重写run方法,在run方法中,写入线程的具体执行过程
     * @创建时间:
     */
    public static void createFirstThread2(){
        //创建第一个线程
        Thread thread = new Thread(new FirstThread2());
        thread.setName("第二种线程1:");
        thread.start();
        //创建第二线程
        Thread thread1 = new Thread(new FirstThread2());
        thread1.setName("第二种线程2:");
        thread1.start();
    }

    /**
     * @描述:第一种线程创建方式,继承Thread类,重写run方法,在run方法中,写入线程的具体执行过程
     * @创建时间:
     */
    public static void createFirstThread(){
        //创建并启动第一个线程
        FirstThread firstThread = new FirstThread();
        firstThread.setName("第一种线程1:");
        firstThread.start();

        //创建并启动第二个线程
        FirstThread firstThread2 = new FirstThread();
        firstThread2.setName("第一种线程2:");
        firstThread2.start();

    }

}


*********************执行结果:

第一种线程1:--HelloThread---0
第一种线程1:--HelloThread---1
第一种线程1:--HelloThread---2
第一种线程1:--HelloThread---3
第一种线程1:--HelloThread---4
第二种线程2:--HelloThread2---0
第一种线程1:--HelloThread---5
第一种线程1:--HelloThread---6
第一种线程1:--HelloThread---7
第一种线程1:--HelloThread---8
第一种线程1:--HelloThread---9
第一种线程1:--HelloThread---10
第一种线程1:--HelloThread---11
第一种线程1:--HelloThread---12
第一种线程1:--HelloThread---13
第一种线程1:--HelloThread---14
第一种线程1:--HelloThread---15
第一种线程1:--HelloThread---16
第一种线程1:--HelloThread---17
第一种线程1:--HelloThread---18
第一种线程1:--HelloThread---19
第一种线程1:--HelloThread---20
第一种线程1:--HelloThread---21
第一种线程1:--HelloThread---22
第一种线程1:--HelloThread---23
第一种线程1:--HelloThread---24
第一种线程1:--HelloThread---25
第一种线程1:--HelloThread---26
第一种线程1:--HelloThread---27
第一种线程1:--HelloThread---28
第一种线程1:--HelloThread---29
第二种线程1:--HelloThread2---0
第二种线程1:--HelloThread2---1
第二种线程1:--HelloThread2---2
第二种线程1:--HelloThread2---3
第二种线程1:--HelloThread2---4
第二种线程1:--HelloThread2---5
第二种线程1:--HelloThread2---6
第二种线程1:--HelloThread2---7
第二种线程1:--HelloThread2---8
第二种线程1:--HelloThread2---9
第二种线程1:--HelloThread2---10
第二种线程1:--HelloThread2---11
第二种线程1:--HelloThread2---12
第二种线程1:--HelloThread2---13
第二种线程1:--HelloThread2---14
第二种线程1:--HelloThread2---15
第二种线程1:--HelloThread2---16
第二种线程1:--HelloThread2---17
第二种线程1:--HelloThread2---18
第二种线程1:--HelloThread2---19
第二种线程1:--HelloThread2---20
第二种线程1:--HelloThread2---21
第二种线程1:--HelloThread2---22
第二种线程1:--HelloThread2---23
第二种线程1:--HelloThread2---24
第二种线程1:--HelloThread2---25
第二种线程1:--HelloThread2---26
第二种线程1:--HelloThread2---27
第二种线程1:--HelloThread2---28
第一种线程2:--HelloThread---0
第一种线程2:--HelloThread---1
第一种线程2:--HelloThread---2
第一种线程2:--HelloThread---3
第一种线程2:--HelloThread---4
第一种线程2:--HelloThread---5
第一种线程2:--HelloThread---6
第一种线程2:--HelloThread---7
第一种线程2:--HelloThread---8
第一种线程2:--HelloThread---9
第一种线程2:--HelloThread---10
第一种线程2:--HelloThread---11
第一种线程2:--HelloThread---12
第一种线程2:--HelloThread---13
第一种线程2:--HelloThread---14
第一种线程2:--HelloThread---15
第一种线程2:--HelloThread---16
第一种线程2:--HelloThread---17
第一种线程2:--HelloThread---18
第一种线程2:--HelloThread---19
第一种线程2:--HelloThread---20
第一种线程2:--HelloThread---21
第一种线程2:--HelloThread---22
第一种线程2:--HelloThread---23
第一种线程2:--HelloThread---24
第一种线程2:--HelloThread---25
第一种线程2:--HelloThread---26
第一种线程2:--HelloThread---27
第一种线程2:--HelloThread---28
第一种线程2:--HelloThread---29
第二种线程1:--HelloThread2---29
第二种线程2:--HelloThread2---1
第二种线程2:--HelloThread2---2
第二种线程2:--HelloThread2---3
第二种线程2:--HelloThread2---4
第二种线程2:--HelloThread2---5
第二种线程2:--HelloThread2---6
第二种线程2:--HelloThread2---7
第二种线程2:--HelloThread2---8
第二种线程2:--HelloThread2---9
第二种线程2:--HelloThread2---10
第二种线程2:--HelloThread2---11
第二种线程2:--HelloThread2---12
第二种线程2:--HelloThread2---13
第二种线程2:--HelloThread2---14
第二种线程2:--HelloThread2---15
第二种线程2:--HelloThread2---16
第二种线程2:--HelloThread2---17
第二种线程2:--HelloThread2---18
第二种线程2:--HelloThread2---19
第二种线程2:--HelloThread2---20
第二种线程2:--HelloThread2---21
第二种线程2:--HelloThread2---22
第二种线程2:--HelloThread2---23
第二种线程2:--HelloThread2---24
第二种线程2:--HelloThread2---25
第二种线程2:--HelloThread2---26
第二种线程2:--HelloThread2---27
第二种线程2:--HelloThread2---28
第二种线程2:--HelloThread2---29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值