zoukankan      html  css  js  c++  java
  • 多线程的实现方式

    方式一:通过继承Thread类实现多线程

    步骤:

      1、创建一个类继承Thread类;

      2、覆写Thread类的run()方法;

      3、创建Thread子类的实例,即创建了线程对象;

      4、调用线程对象的start()方法来启动该线程;

    package study;
    
    public class ThreadDemo {
        public static void main(String[] args) {
            new TestThread().start();
            for(int i=0;i<10;i++){
                System.out.println("main在运行");
                try{
                    Thread.sleep(1000);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
            }
        }
    }
    class TestThread extends Thread{
        public void run(){
            for(int i=0;i<10;i++){
                System.out.println("TestThread在运行");
                try{
                    Thread.sleep(1000);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
            }
        }
    }

    方式二:通过实现Runnable接口实现多线程

    步骤:

      1、创建一个类实现Runnable接口;

      2、覆写Runnable接口的run()方法;

      3、创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread的对象,该Thread对象才是真正的线程对象;

      4、调用Thread对象的start()方法启动该线程;

    package study;
    
    public class ThreadDemo {
        public static void main(String[] args) {
            TestThread t=new TestThread();
            new Thread(t).start();//使用Thread类的start方法启动线程
            for(int i=0;i<10;i++){
                System.out.println("main在运行");
                try{
                    Thread.sleep(1000);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
            }
        }
    }
    class TestThread implements Runnable{
        public void run(){
            for(int i=0;i<10;i++){
                System.out.println("TestThread在运行");
                try{
                    Thread.sleep(1000);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
            }
        }
    }

       实现Runnable接口相对于继承Thread类来说,有以下几个显著优势:

      1、避免由于Java的单继承特性带来的局限;

      2、可以使多个线程共享相同的资源,以达到资源共享的目的;

      

  • 相关阅读:
    PAT A1060——string的常见用法详解
    题解-ZJOI2015地震后的幻想乡
    题解-富有物理组的风采
    题解-概率计算器
    题解-CodeForces835F Roads in the Kingdom
    题解-hdu2866 Special Prime
    题解-poj3682King Arthur's Birthday Celebration
    题解-拉格朗日(bzoj3695变种)
    题解-ZeroJudge-c686 高斯符號
    其他-几道物理题
  • 原文地址:https://www.cnblogs.com/Hellorxh/p/10886163.html
Copyright © 2011-2022 走看看