zoukankan      html  css  js  c++  java
  • 多线程-并发基础

    高并发: High Concurrency

    CPU 多级缓存: 数据 存取 通过高速缓存 cache。一级缓存 二级缓存 三级缓存

    时间局部性  空间局部性

    缓存一致性 MESI (修改  独享 共享 无效) 

    乱序执行优化

     

    JAVA虚拟机-内存模型 JMM

    堆: 用户对象信息存储

    栈: 对象引用、基本类型变量存储,堆区对象的私有拷贝

     

    import com.imooc.concurrency.annoations.NodThreadSafe;
    
    import java.util.concurrent.CountDownLatch;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Semaphore;
    
    @NodThreadSafe
    public class ConcurrentyTest {
    
        // 请求总数
        public static int countTotle = 5000;
        // 并发执行线程数
        public static int threadTotle = 200;
        public static int sum = 0;
    
        public static void main(String[] args)throws Exception {
            ExecutorService executorService = Executors.newCachedThreadPool(); //线程池
            final Semaphore semaphore = new Semaphore(threadTotle);             //信号量
            final CountDownLatch countDownLatch = new CountDownLatch(countTotle); // 计数器
            for (int i=0;i<countTotle ;i++){
                executorService.execute(() ->{
                    try {
                        semaphore.acquire(); // 是否允许被执行
                        add();
                        semaphore.release();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    countDownLatch.countDown();//计数器 -1
                });
            }
            countDownLatch.await();
            executorService.shutdown();
            System.out.println(sum);
        }
    
        private static void add() {
            sum++;
        }
    }

     

     

     

  • 相关阅读:
    Django的models介绍
    Django的模板继承
    Django的模板语言介绍
    django的视图函数介绍
    django的流程分析
    1、数据库优化
    git 开发中的总结
    ob
    docker-compose
    如何批量删除Docker中已经停止的容器
  • 原文地址:https://www.cnblogs.com/Tonyzczc/p/10649358.html
Copyright © 2011-2022 走看看