zoukankan      html  css  js  c++  java
  • 03_线程的创建和启动_实现Runnable接口方式

    【线程的创建和启动的步骤实现Runnable接口方式)】

    1.定义Runnable接口的实现类,并重写其中的run方法。run()方法的方法体线程执行体

       class SonThread  implement Runnable{

      public void run(){

      ......

      }

     }

    2.创建Runnable接口实现类的实例。                        sonThread s1=new SonThread();

    3.用该实例作为Thread的target来创建Thread对象。   Thread t1 =new Thread(s1);

    4.调用该对象的start()方法启动线程。                       t1.start();

    【示例代码】

    package com.Higgin.part01;
    
    //1.1定义Runnable接口的实现类
    class SecondThread implements Runnable{
    
        //1.2重写其中的run方法
        @Override
        public void run() {
            for(int i=0;i<10;i++){
                System.out.println(Thread.currentThread().getName()+"===="+i);
            }
        }
        
    }
    public class Demo2 {
        
        public static void main(String[] args) {
            //2.创建Runnable的接口实现类的实例
            SecondThread s1=new SecondThread();
            SecondThread s2=new SecondThread();
            //2.用Runnable的接口实现类的实例作为Thread的target,创建Thread对象
            Thread t1=new Thread(s1);
            Thread t2=new Thread(s2,"Higgin");  //创建Thread对象的同时可以为之命名
            
            //启动线程
            t1.start();
            t2.start();
            
            for(int i=0;i<10;i++){
                System.out.println(Thread.currentThread().getName()+"===="+i);
            }
        }
    }

    【运行结果】

    【注意一:关于命名】

    在创建Thread 对象的时候可以为该Thread对象指定一个名字

    【注意二:Thread的构造方法】

    Runnable对象作为Thread对象的target,Runnable实现类里面包含run方法仅仅作为执行体。也就是说Thread类的作用是把run方法包装成线程的执行体。

    实际运行的线程对象依然是Thread实例,只是该Thread线程负责执行其target的run方法。

  • 相关阅读:
    mybatis中_parameter使用和常用sql
    ibatis中井号跟美元符号区别(#.$)
    mybatis动态sql中的trim标签的使用
    c语言捕捉异常
    lua lua解读
    lua luaconf解读
    android堆栈调试--详细
    cocos2d-x安卓应用启动调用过程简析
    ndk-stack使用方法
    cocos2dx3.2移植android
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5901593.html
Copyright © 2011-2022 走看看