zoukankan      html  css  js  c++  java
  • Java中关于LockSupport的简单入门记录

    LockSupport的JDK的文档描述:Basic thread blocking primitives for creating locks and other synchronization classes.(对于创建lock和其他同步类的基础线程原语)。在JUC中有大量使用!

    1 示例:

    在主线程中调用LockSupport.park(currentThread);将组线程阻塞,然后通过子线程完成5秒睡眠换后唤醒主线程。

    import java.util.concurrent.locks.LockSupport;
    
    public class LockSupportDemo {
    
        public static void main(String[] args) {
    
            //获取当前线程
            final Thread currentThread = Thread.currentThread();
            
            Runnable runnable = new Runnable() {
    
                @Override
                public void run() {
                    try {
                        //睡眠5秒,等待主线程调用park
                        Thread.sleep(5000);
                        System.out.println("子线程进行unpark操作!");
                        // 进行唤醒给定的currentThread线程
                        LockSupport.unpark(currentThread);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
                }
            };
    
            new Thread(runnable).start();
            System.out.println("开始阻塞!");
            // 进行阻塞给定的currentThread线程
            LockSupport.park(currentThread);
            System.out.println("结束阻塞!");
    
        }
    
    }

    示例2:

    import java.util.concurrent.locks.LockSupport;
    
    public class LockSupportDemo {
    
        public static void main(String[] args) {
    
            //获取当前线程
            final Thread currentThread = Thread.currentThread();
         
            //在park之前先进行一次unpark
            LockSupport.unpark(currentThread);
             
            
            System.out.println("开始阻塞!");
            // 由于在park之前进行了一次unpark,所以会低调本次的park操作。因而不会阻塞在此处
            LockSupport.park(currentThread);
            System.out.println("结束阻塞!");
    
        }
    
    }

  • 相关阅读:
    HDU 2116 Has the sum exceeded
    HDU 1233 还是畅通工程
    HDU 1234 开门人和关门人
    HDU 1283 最简单的计算机
    HDU 2552 三足鼎立
    HDU 1202 The calculation of GPA
    HDU 1248 寒冰王座
    HDU 1863 畅通工程
    HDU 1879 继续畅通工程
    颜色对话框CColorDialog,字体对话框CFontDialog使用实例
  • 原文地址:https://www.cnblogs.com/leodaxin/p/7701649.html
Copyright © 2011-2022 走看看