线程

线程:一个进程内部,并行执行的任务
如:QQ与多个人聊天,迅雷同时下载多个文件

创建线程的两种方式
1继承Thread
2实现Runnable

继承Thread
Thread是线程类
继承Thread,定义自己的线程子类
需要重写run()方法
run()方法包含并执行的代码

继承Thread

用start()方法,启动线程
线程启动后,执行run()方法中的代码

public class Test1XianCheng {
    public static void main(String[] args) {
        /**
         * 新建两个线程对象,并分别启动
         * 线程启动后,自动执行run()方法代码
         */
        T1 t1=new T1();
        T1 t2=new T1();
        t1.start();
        t2.start();
        System.out.println("---------");
    }

    static class T1 extends Thread {
        @Override
        public void run() {
            String n=getName();
            //打印1~5
            for(int i=1;i<=5;i++)
            {
                System.out.println(n+" - "+i);
            }
        }
    }
}

运行结果

Thread-0 - 1
---------
Thread-1 - 1
Thread-0 - 2
Thread-1 - 2
Thread-0 - 3
Thread-1 - 3
Thread-1 - 4
Thread-1 - 5
Thread-0 - 4
Thread-0 - 5

实现Runnable接口
定义Runnable接口的子类
实现run()方法
新建线程对象时,把Runnable对象交给线程
线程启动后,执行Runnable对象的run()方法


实现Runnable接口
public class Test2XianCheng {
    public static void main(String[] args) {
        //封装代码的对象
        R1 r1 = new R1();
        //代码交给线程
        Thread t1 = new Thread(r1);
        Thread t2 = new Thread(r1);
        //两个线程启动后,都调用r1的run方法
        t1.start();
        t2.start();
        System.out.println("---------");
    }
    /**
     * 用来封装代码
     * run()方法代码要放入线程执行
     */
    static class R1 implements Runnable{

        @Override
        public void run() {
            //获得正在执行的线程对象
            Thread t = Thread.currentThread();
            String n = t.getName();
            for(int i=1;i<=5;i++)
            {
                System.out.println(n+" - "+i);
            }
        }
        
    }
}

运行结果

---------
Thread-0 - 1
Thread-1 - 1
Thread-0 - 2
Thread-1 - 2
Thread-0 - 3
Thread-1 - 3
Thread-0 - 4
Thread-1 - 4
Thread-0 - 5
Thread-1 - 5
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,515评论 1 15
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 3,007评论 1 18
  • 进程和线程 进程 所有运行中的任务通常对应一个进程,当一个程序进入内存运行时,即变成一个进程.进程是处于运行过程中...
    小徐andorid阅读 2,871评论 3 53
  • 写在前面的话: 这篇博客是我从这里“转载”的,为什么转载两个字加“”呢?因为这绝不是简单的复制粘贴,我花了五六个小...
    SmartSean阅读 4,807评论 12 45
  • 1.识别并接纳自己孩子的情绪 2.了解孩子情绪背后的需求 3.适当满足孩子的情绪并让孩子自己为情绪负起责任
    喜乐妈妈阅读 135评论 0 0