zoukankan      html  css  js  c++  java
  • Java高并发之线程的实现方式,含Lamabda表达式

    Java中线程实现的方式

    在 Java 中实现多线程有4种手段:

    1.继承 Thread 类

    2.实现 Runnable 接口

    3.匿名内部类

    4.Lambda表达式实现

    实现 Runnable 接口

    package ljz;
    class MyThread implements Runnable{ // 实现Runnable接口,作为线程的实现类
        private String name ;       // 表示线程的名称
        public MyThread(String name){
            this.name = name ;      // 通过构造方法配置name属性
        }
        public void run(){  // 覆写run()方法,作为线程 的操作主体
            for(int i=0;i<10;i++){
                System.out.println(name + "运行,i = " + i) ;
            }
        }
    };
    public class RunnableDemo01{
        public static void main(String args[]){
            MyThread mt1 = new MyThread("线程A ") ;    // 实例化对象
            MyThread mt2 = new MyThread("线程B ") ;    // 实例化对象
            Thread t1 = new Thread(mt1) ;       // 实例化Thread类对象
            Thread t2 = new Thread(mt2) ;       // 实例化Thread类对象
            t1.start() ;    // 启动多线程
            t2.start() ;    // 启动多线程
        }
    };

    继承 Thread 类

    class MyThread extends Thread{  // 继承Thread类,作为线程的实现类
        private String name ;       // 表示线程的名称
        public MyThread(String name){
            this.name = name ;      // 通过构造方法配置name属性
        }
        public void run(){  // 覆写run()方法,作为线程 的操作主体
            for(int i=0;i<10;i++){
                System.out.println(name + "运行,i = " + i) ;
            }
        }
    };
    public class ThreadDemo02{
        public static void main(String args[]){
            MyThread mt1 = new MyThread("线程A ") ;    // 实例化对象
            MyThread mt2 = new MyThread("线程B ") ;    // 实例化对象
            mt1.start() ;   // 调用线程主体
            mt2.start() ;   // 调用线程主体
        }
    };

    匿名内部类

    接口本身是不可以new的,但是通过匿名内部类接口可以new,实现run方法后整体作为参数传入Thread()。本质是要实现run方法

    public static void main(String[] args) {
      //使用匿名内部类的方式,实现多线程
      new Thread(new Runnable() {
        @Override
        public void run() {
          System.out.println(Thread.currentThread().getName() + "新线程创建了!");
        }
      }).start();
    }

    使用Lambda表达式实现多线程

    public static void main(String[] args) {//使用Lambda表达式,实现多线程
      new Thread(() -> {
        System.out.println(Thread.currentThread().getName() + "新线程创建了!");
      }).start();
    }

    Lambda表达式的标准格式

     (参数列表,用逗号隔开)-> {一些重写方法的代码};

    Lambda的作用和目的:

         简化匿名内部类的书写。

    Lambda表达式继续省略(凡是根据上下文可以推导出来的内容,都可以省略):

    • (参数列表):括号中的参数列表的数据类型,可以省略不写;
    • (参数列表):括号中的参数如果只有一个,那么数据类型和小括号( )都可以省略;
    • {一些代码}:如果大括号{ }中的代码只有一行,就可以省略大括号{ },return和分号。注意:要省略必须三个一起省略。
  • 相关阅读:
    SpringBoot @Transactional声明事务无效问题
    高并发秒杀系统方案(集成Mybatis和Redis)
    高并发秒杀系统方案(项目框架搭建)
    高并发秒杀系统方案(简介)
    解决VMware虚拟机的CentOS无法上网
    收货地址管理模块开发
    购物车模块开发
    乐观锁和悲观锁
    商品模块开发
    数据库系列学习(十)-约束
  • 原文地址:https://www.cnblogs.com/yanl55555/p/13540124.html
Copyright © 2011-2022 走看看