zoukankan      html  css  js  c++  java
  • java并发LockSupport

    java并发LockSupport

    LockSupport是阻塞和唤醒线程的重要类。
    park()方法使得当前线程阻塞
    unpark(Thread thread)唤醒线程

    例子

    可以把注释取消再执行,就会发现park()方法使得当前线程阻塞会使得main线程阻塞,无法结束。

    package com.java.javabase.thread.base.concurrent.lock;
    
    import lombok.extern.slf4j.Slf4j;
    
    import java.util.concurrent.locks.LockSupport;
    
    @Slf4j
    public class LockSupportTest {
        /**
         * @author
         * @version
         * @since
         */
        private static Object object = new Object();
        private static int size = 10;
        private static int sum = 0;
    
        public static void main(String[] args) {
            Thread t1 = new Thread() {
                @Override
                public void run() {
                    for (int i = 0; i < size; i++) {
                        sum += i;
    
                    }
                    LockSupport.park();
                    log.info("{} sum :{}", Thread.currentThread().getName(),sum);
                }
            };
            Thread t2 = new Thread() {
                @Override
                public void run() {
                    for (int i = 0; i < size; i++) {
                        sum += i;
                    }
                    log.info("{} sum :{}",Thread.currentThread().getName(), sum);
                }
            };
            t1.start();
            //t2.start();
            log.info("current thread is {}",Thread.currentThread().getName());
            //LockSupport.park(t2);
            LockSupport.unpark(t1);
            //LockSupport.unpark(t2);
    
    
        }
    
    
    }
    
    

    结果

    2019-08-09 11:40:15,219   [main] INFO  LockSupportTest  - current thread is main
    2019-08-09 11:40:15,219   [Thread-0] INFO  LockSupportTest  - Thread-0 sum :45
    
  • 相关阅读:
    JDBC
    MySQL 事务
    MySQL 处理海量数据时一些优化查询速度方法
    MySQL 分支和循环结构
    MySQL 分页查询和存储过程
    Oracle PL/SQL异常、存储过程和触发器
    Oracle PL/SQL游标
    mysql主键问题
    spring-springmvc code-based
    AOP实现原理
  • 原文地址:https://www.cnblogs.com/JuncaiF/p/11326297.html
Copyright © 2011-2022 走看看