JAVA创建线程的两种方式

来源:互联网 发布:淘宝网妈妈装 编辑:程序博客网 时间:2024/05/16 10:07

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

创建线程有两种方式:

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
原创粉丝点击