zoukankan      html  css  js  c++  java
  • java 22

    首先回顾下之前的匿名内部类:  

    匿名内部类的格式:
      new 接口或者接口名(){
            重写方法
        };
    本质:是该类或者接口的子类对象

    匿名内部类方式使用多线程
    1、new Thread(){代码…}.start();
    2、new Thread(new Runnable(){代码…}).start();

    例子1:继承Thread类的匿名内部类实现多线程

    1         // 一、继承Thread类实现多线程
    2         new Thread() {
    3             // 线程的代码
    4             public void run() {
    5                 for (int x = 0; x < 100; x++) {
    6                     System.out.println("Thread" + "--" + x);
    7                 }
    8             }
    9         }.start();// 别忘了启动线程

    例子2:继承Runnable类的匿名内部类实现多线程

     1         // 二、继承Runnable类实现多线程
     2         new Thread(new Runnable() {
     3             // 线程的代码
     4             public void run() {
     5                 for (int x = 0; x < 100; x++) {
     6                     System.out.println("Runnable" + "--" + x);
     7                 }
     8             }
     9 
    10         })
    11 
    12         {
    13             // 这里的代码为空
    14         }.start();

    由于继承Runnable类实现线程中,start之前的{}为空,这里在继承Thread类中是重写线程的方法的,
     所以,如果两者结合起来的话,会执行Runnable还是Thread?

    例子3:同时继承Runnable类和Thread类的匿名内部类来实现多线程

     1         // 三、两者结合
     2 
     3         new Thread(new Runnable() {
     4 
     5             public void run() {
     6                 // 填写继承Ruannble的线程代码
     7                 for (int x = 0; x < 100; x++) {
     8                     System.out.println("hello" + "--" + x);
     9                 }
    10 
    11             }
    12 
    13         }) {
    14             // 填写继承Thread类的线程代码
    15             public void run() {
    16                 for (int x = 0; x < 100; x++) {
    17                     System.out.println("world" + "--" + x);
    18                 }
    19             }
    20         }.start();
    21         //通过运行结果可知道,这里只执行继承Thread类的代码

    ps:这个开发中几乎看不到,就怕面试问到。。

    如:上面那段代码会不会出错?  不会

      执行的是Runnable的代码还是Thread类的代码? Thread类的代码

    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    浏览器从输入URL到渲染出页面发生了什么
    按需加载controller——angular
    依赖注入——angular
    qrcode-reader——二维码识别
    Dynamic Web TWAIN——网页扫描SDK
    WebSocket-Node
    关机命令 shutdown
    datagrid——jQuery EasyUI
    双屏显示——NW.js
    css换行用省略号代替
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5950890.html
Copyright © 2011-2022 走看看