zoukankan      html  css  js  c++  java
  • 详解~实现Runnable方法创建线程之为什么要将Runnable接口的子类对象传递给Thread的构造函数

     1 /**
     2  * @author zhao
     3  * @TIME 0419 22:56  End
     4  *定义线程的第二种方法:实现Runnable接口(不考虑安全问题)
     5  *步骤:1,定义一个子类实现Runnable接口
     6  *    2,在子类中覆盖run()方法,并且将多线程锁执行的代码写入run方法中
     7  *    3,通过Thread类建立线程对象;
     8  *    4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
     9   为什么要将Runnable接口的子类对象传递给Thread的构造函数。
    10   因为,自定义的run方法所属的对象是Runnable接口的子类对象。
    11   所以要让线程去指定指定对象的run方法。就必须明确该run方法所属对象。
    12 顿悟 (结合今天刚看的入门问题:
    13  1,在Test项目中java.Iduction.test中,String s ="Hello world";String string =s;
    14  注意:s不是一个对象,而是一个String类型的引用,指向对象的地址
    15  同理:为什么要将Runnable接口的子类对象传递给Thread的构造函数。
    16  
    17  */
    18 //举例:定义一个卖票程序
    19 package ThreadDemoOne;
    20 class Ticket implements Runnable //实现接口,注意英语单词
    21 {
    22  private int tick =100;//定义票数为100张
    23  public void run()
    24  {
    25   while(true)//true true true 写错过两遍了。while(True)就是执行循环。
    26   {
    27    if(tick>0)
    28    {
    29     System.out.println("售票员编号"+Thread.currentThread().getName()+"这是第"+tick+"张票");
    30     tick--;
    31    }
    32   }
    33  }
    34 }
    35 public class ThreadDemo4 
    36 {
    37  public static void main(String[] args )
    38  {
    39   Ticket t=new Ticket();//声明一个Ticket类型的对象的“引用”,这个引用指向Ticket对象
    40   Thread t1=new Thread(t);//创建一个线程,声明一个Thread类型的t1变量,t1变量又指向了t所指向的变量。
    41   Thread t2=new Thread(t);
    42   Thread t3=new Thread(t);
    43   Thread t4=new Thread(t);
    44   /*new Thread(t)中的t不是一个对象,而是一个声明为Ticket类型的变量,t指向这个对象的地址
    45    * 而将t1~t4指向t,t又是指向run方法中的对象,即线程t1~t4指向ticket对象的地址
    46    * 如果不指向对象,线程将不知道执行哪个run方法。
    47    */
    48   //t1.run();犯错误了,注意不能是run方法,应该是start方法
    49   t1.start();
    50   t2.start();
    51   t3.start();
    52   t4.start();
    53 
    54   
    55   
    56  }
    57 }
  • 相关阅读:
    http基本概念和常见状态码
    JDK1.7 hashMap并发扩容死循环原理
    HashMap初始化数组原理,为什么是2的N次方?
    Rest接口加Http单向认证
    post和get乱码解决方法
    用迭代法实现二叉树的前、中、后序遍历
    搭建基于Zookeeper和solr的分布式搜索:solrcloud
    正向代理,反向代理及其作用
    二分查找向左或向右紧缩
    tcp四次挥手
  • 原文地址:https://www.cnblogs.com/ruoniao/p/5410670.html
Copyright © 2011-2022 走看看