概述 CountDownLatch 允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。简单来说,就是 CountDownLatch 内部维护了一个计数器,每个线程完成自己的操作之后都会将计数器减一,然后会在计数器的值变为 0 之前一直阻塞,直到计数器的值变为 0. 简单使用 这个例 ...
分类:
编程语言 时间:
2021-02-01 12:23:14
阅读次数:
0
什么是限流器? 限流器是一种限制某种操作在一定时间内的执行次数(例如每秒钟5次)或者执行量(例如每秒钟1G大小的数据)的机制。 限流器是一种防御性的编程实现方式,在大数据量高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃。此时你需要使用的技术手段之一就 ...
分类:
其他好文 时间:
2021-01-30 12:19:16
阅读次数:
0
什么是CAS CAS(compare and swap),字面意思比较并交换,是解决多线程并行情况下使用锁造成性能损耗的一种机制. public final boolean compareAndSet(int expect, int update) { return unsafe.compareAn ...
分类:
编程语言 时间:
2021-01-29 12:10:28
阅读次数:
0
引入 我们知道一个线程同一时间内只能被操作系统分配一个CPU资源, 我们可以基于多进程实现并发, 也可以基于多线程实现并发, CPU正在运行一个任务, 有两种情况下会被切去执行其它任务, 一种是该任务发生了阻塞, 另一是该任务运行时间过长或者被其他优先级更高的任务夺走CPU, 对于单线程来说, 如果 ...
分类:
编程语言 时间:
2021-01-29 12:07:49
阅读次数:
0
需求 有 A-F 6个任务,它们的执行关系如下: Task A, Task B Task C, Task D Task E, Task F 同一级内的任务可以并行,上一级任务做完了,才能进行下一级任务。 实现这样一个具有依赖关系的系列任务有很多种方法。这里采用的是Celery。 优点是:不用自己重新 ...
分类:
其他好文 时间:
2021-01-29 11:55:03
阅读次数:
0
一、宏观上: 1、Oracle是大型的数据库而Mysql是中小型数据库;Mysql是开源的,Oracle是收费的,且价格昂贵。 2、Oracle支持大并发,大访问量,是OLTP的最好的工具。 3、安装占用的内存也是有差别,Mysql安装完成之后占用的内存远远小于Oracle所占用的内存,并且Orac ...
分类:
数据库 时间:
2021-01-29 11:44:59
阅读次数:
0
硬盘,显卡这些硬件是可以不消耗CPU资源而自动与内存交换数据的,这也是实现异步的基本条件。所以异步是硬件式的异步,而多线程就是多个thread并发。 使用委托实现异步调用 通过Action以及Func的BeginInvoke方法可以很轻松的实现异步调用,如下: private void btnAsy ...
分类:
编程语言 时间:
2021-01-28 12:10:00
阅读次数:
0
目录 背景 目前,在工作中用到的分布式缓存技术主要是redis和memcached两种 缓存的目的是为了在高并发系统中有效的降低DB数据库的压力 缓存服务器的选型和特点 1.memcache服务器 memcache服务器是没有集群概念的。所有的存储分发全部交给memcache client去做,这里 ...
分类:
其他好文 时间:
2021-01-27 14:00:46
阅读次数:
0
1、为什么使用线程池 减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 可以根据系统的承受能力,调整线程池中工作线线程的数目,防止消耗过多的内存。 web项目应该创建统一的线程池,如静态或者交给容器处理,而不是每回都去 new 一个线程池。 2、Java中的ThreadPo ...
分类:
编程语言 时间:
2021-01-27 13:57:49
阅读次数:
0
一、什么是 Cookie 和 Session ?初级程序员高频面试题。什么是 Cookie? HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服 ...
分类:
其他好文 时间:
2021-01-27 13:19:14
阅读次数:
0