zoukankan      html  css  js  c++  java
  • java 线程中使用lamba表达式

    举例

    import lombok.extern.slf4j.Slf4j;
    
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    @Slf4j
    public class SynchronizedExample2 {
    
        // 修饰一个类
        public static void test1(int j) {
            synchronized (SynchronizedExample2.class) {
                for (int i = 0; i < 3; i++) {
                    log.info("test1 {} - {}", j, i);
                }
            }
        }
    
        // 修饰一个静态方法
        public static synchronized void test2(int j) {
            for (int i = 0; i < 3; i++) {
                log.info("test2 {} - {}", j, i);
            }
        }
    
        public static void main(String[] args) {
            SynchronizedExample2 example1 = new SynchronizedExample2();
            SynchronizedExample2 example2 = new SynchronizedExample2();
            ExecutorService executorService = Executors.newCachedThreadPool();
            executorService.execute(new Runnable() {
                @Override
                public void run() {
                    example1.test1(1);
                    System.out.println(Thread.currentThread().getName()+":使用正常方式创建线程");
                }
            });
            executorService.execute(() -> {
                example2.test1(2);
                System.out.println(Thread.currentThread().getName()+":使用lambda表达式创建线程");
    
    
        });
        }
    }

    输出

    14:44:09.488 [pool-1-thread-1] INFO com.mmall.demo.example.sync.SynchronizedExample2 - test1 1 - 0
    14:44:09.493 [pool-1-thread-1] INFO com.mmall.demo.example.sync.SynchronizedExample2 - test1 1 - 1
    14:44:09.493 [pool-1-thread-1] INFO com.mmall.demo.example.sync.SynchronizedExample2 - test1 1 - 2
    pool-1-thread-1:使用正常方式创建线程
    14:44:09.594 [pool-1-thread-1] INFO com.mmall.demo.example.sync.SynchronizedExample2 - test1 2 - 0
    14:44:09.594 [pool-1-thread-1] INFO com.mmall.demo.example.sync.SynchronizedExample2 - test1 2 - 1
    14:44:09.594 [pool-1-thread-1] INFO com.mmall.demo.example.sync.SynchronizedExample2 - test1 2 - 2
    pool-1-thread-1:使用lambda表达式创建线程
  • 相关阅读:
    MFC tab页面中获到其它页面的数据
    sqlite数据库中"Select * From XXX能查到数据,但是Select DISTINCT group From xxx Order By group却查不出来
    关闭程序出现崩溃(exe 已触发了一个断点及未加载ucrtbased.pdb)
    springboot 通用Mapper使用
    springBoot 发布war包
    springCloud Zuul网关
    springboot hystrix turbine 聚合监控
    springBoot Feign Hystrix Dashboard
    springBoot Ribbon Hystrix Dashboard
    springBoot Feign Hystrix
  • 原文地址:https://www.cnblogs.com/xiao-apple36/p/13099365.html
Copyright © 2011-2022 走看看