• 技术文章 >Java >java教程

    java中多线程的实现

    VV2019-11-28 17:00:29转载804

    第一种方式,定义Thread类的子类:

    //第一种方法
    public class MyThread extends Thread {
        @Override
        public void run() {
            String name = getName(); // 获取线程名称
            System.out.println(name); // 输出 Thread-0
        }
    }
    //第二种方法
    public class MyThread extends Thread {
        @Override
        public void run() {
            Thread t = Thread.currentThread(); // 获取当前线程
            System.out.println(t); 	// 下面调用后输出 Thread[Thread-0,5,main]
            System.out.println(t.getName());// 输出 Thread-0
        }
    }

    java相关视频推荐:java在线学习

    开启多线程:

    public class demo1Test {
        public static void main(String[] args) {
            MyThread mt = new MyThread();
            mt.start();// 会运行MyThread的run()方法
       }
    }

    第二种方式,实现Runnable接口:

    实现步骤:

    1.创建一个Runnable 接口的实现类

    2.在实现类中重写Runnable接口的run方法,设置线程任务

    3.创建一个Runnable接口的实现类对象

    4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象

    5.调用Thread类中的start方法,开启新的线程执行run方法

    public class Runnableimpl implements Runnable {//1.创建一个Runnable 接口的实现类
        @Override
        public void run() {
            for (int i = 1; i <= 20; i++) {// 2.在实现类中重写Runnable接口的run方法,设置线程任务
                System.out.println(Thread.currentThread().getName() + i);
            }
        }
    }
    public class demo2Test {
        public static void main(String[] args) {
            Runnable run = new Runnableimpl();//3.创建一个Runnable接口的实现类对象
            Thread t = new Thread(run); //4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象
            t.start();//5.调用Thread类中的start方法,开启新的线程执行run方法
            for (int i = 1; i <= 20; i++) {
                System.out.println(Thread.currentThread().getName() + i);
            }	// Thread-0和main开始多线程抢夺cpu
        }
    }

    实现Runnable接口创建多线程的好处:

    1.避免了单继承的局限性:

    一个类只能继承一个类,类继承了Thread后就不能继承其他的类

    实现了Runnable接口,还可以继承其他的类,实现其他接口。

    2.增强了程序的扩展性,降低了程序的耦合性

    实现Runnable接口的方式,把设置线程任务和开启线程任务进行分离

    实现类中,重写run()方法,用来设置线程任务。

    创建Thread类对象,调用start()方法,用来开启新线程

    sleep( )方法,使方法睡眠

    public class sleepTest {
        public static void main(String[] args) {
            for (int i = 0; i < 20; i++) {
            //使用Thread类的sleep方法,让方法睡眠1秒钟
                try {
                    Thread.sleep(1000);//传入的是毫秒值
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(i);
            }
        }
    }

    java相关文章教程推荐:java快速入门

    以上就是java中多线程的实现的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:java 多线程 实现
    上一篇:java中的浅拷贝与深拷贝 下一篇:spring是如何注入对象的和bean创建过程分析
    大前端线上培训班

    相关文章推荐

    • java中什么情况下使用ArrayList和LinkedList?• java中的装箱与拆箱• 如何解决java中的死锁问题• java中的浅拷贝与深拷贝

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网