zoukankan      html  css  js  c++  java
  • java多线程与线程并发一:线程基础回顾

    本文章内容整理自:张孝祥_Java多线程与并发库高级应用视频教程

    线程简单来讲就是程序正在做的事情。多线程即一个程序同时做多件事情,一个线程就是一件事情。

    在java中创建线程的方法有两种。

    方法一是直接重写Thread对象的run方法。代码如下:

    //重写Thread类的run方法
            Thread thread = new Thread(){
                @Override
                public void run() {
                    while (true) {
                        try {
                            Thread.sleep(1000);//线程休眠1秒
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println("Thread"+Thread.currentThread().getName());//打印当前线程的名字
                    }
                }
            };
            thread.start();

    方法二是创建Runnable对象,重写其的run方法,然后传入Thread对象。

    //重写Runnable类的run方法,传入Thread对象
            Thread thread2 = new Thread(new Runnable() {
                
                @Override
                public void run() {
                    while (true) {
                        try {
                            Thread.sleep(1000);//线程休眠1秒
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println("Runnable:"+Thread.currentThread().getName());//打印当前线程的名字
                    }
                }
            });
            thread2.start();

    这两种方法在效果上没有区别,不过当一个Thread对象既重写了run方法,又传入了Runnable对象时,结果会执行哪个run方法里的代码呢?

    答案是,会执行Thread对象重写过的run方法里的代码。

    为什么会这样呢?

    翻看java源代码可以找到答案。

    在Thread类中,run方法是这样实现的:

    @Override
        public void run() {
            if (target != null) {
                target.run();
            }
        }

    其中的target是一个Runnable对象。

    也就是说,只有当Thread对象去实现父类的run方法时,才会使用Runnable对象。假如Thread对象自己实现了run方法,那么父类的run方法相当于作废,自然也就出现了上文提到的结果。

  • 相关阅读:
    [NOI2010]航空管制
    [POI2008]POD-Subdivision of Kingdom
    CF17C Balance
    [HAOI2007]理想的正方形
    [Code+#1]大吉大利,晚上吃鸡!
    HDU 3371
    hdu1102
    最短路算法、应用、模板总结
    csu十月月赛 并查集+分组背包
    csu 十月月赛 最短路+最小费用
  • 原文地址:https://www.cnblogs.com/bailiyi/p/3619251.html
Copyright © 2011-2022 走看看