并发编程 + 实战案例
Java_HuiLong
这个作者很懒,什么都没留下…
展开
-
zookeeper 3.5.*版本 本地伪集群 问题 Client port not found in static config file. Looking in dynamic config f
Client port not found in static config file. Looking in dynamic config file. grep: : No such file or directory好久没有搭建zk 环境,搞了半天才发现问题,记录下zoo.cfg 版本配置区别3.4.*和更早版本配置# example sakes.dataDir= /Users/zhanghuilong/zkgroup/zk3/datadataLogDir= /Users/zhangh原创 2020-11-30 11:44:28 · 2411 阅读 · 0 评论 -
并发-CountDownLatch 和 CyclicBarrier
Concurrent.util工具之CountDownLatch & CyclicBarrierCountDownLatch用法:经常用于监控一些初始化操作,等初始化都完毕之后,通知主线程进行继续操作!! CyclicBarrier常用于多个线程都完成一定的准备工作之后,一起去执行操作。例如: 你今天过生日,约定好,家人都到齐了,才能吃蛋糕,有一个人没到家...原创 2018-01-11 11:02:46 · 250 阅读 · 0 评论 -
并发之-Callable 和 Future 使用
并发之-Callable 和 Future 使用Future模式非常适合之处理耗时比较长的业务上使用,可以有效的节省系统响应时间。提高服务器的吞吐量代码事例:package com.huilong.study.apple.service.executor;import java.util.concurrent.Callable;import java.util.concurr原创 2018-01-14 15:44:09 · 311 阅读 · 0 评论 -
并发之Semaphore信号量限流操作
Java并发之Semaphore信号量限流使用信号量Semaphore非常适合高并发访问,一般新系统上线前要预估访问量大小,当然评估值不能过大,也不能过小。过大,会导致浪费系统资源,太小,如果遇到峰值,容易压垮系统!相关概念: PV: page view 页面总访问量,没刷新一次记录一次。 默认的策略是非公平锁UV: unique view 客户端主机访问,一原创 2018-01-14 20:58:32 · 3981 阅读 · 1 评论 -
Java并发之重入锁+读写锁
Java多线程中,除了sychronized关键字实现多线程之间同步互斥操作,其实还有另外一种高效的机制去完成”同步互斥”操作。即Lock对象,比synchronized关键字更为强大功能,并且有嗅探锁定,多路分支等功能。重入锁 默认非公平锁 public ReentrantLock() { sync = new NonfairSync(); }常用方法原创 2018-01-16 00:42:15 · 1908 阅读 · 0 评论 -
并发-线程池-2-ThreadPoolExecutor框架
自定义线程池使用详细:JDK底层ThreadPoolExecutor的构造方法实现: 其中核心内容是BlockingQueue workQueue,之所以Exectuors拥有创建不同类型的线程池关键在于此处传入的参数可以时不同的队列。 也就是说当Exectuors不能满足你的话,可以根据这个方法自定义自己的线程池:public ThreadPoolExecutor(int coreP原创 2018-01-06 22:22:57 · 380 阅读 · 0 评论 -
并发-线程池-1-Executor框架
并发-线程池-Executor框架Executor框架: 为了更好的控制多线程,JDk提供了一套线程框架Executor,位于java.util.concurrent包下,是JDK并发包的核心。其中重要的一个角色:Executors,扮演线程工厂的角色,用于创建线程主要方法包含:1、该方法返回一个固定数量的线程池,方法的线程数量不变,有一个任务提交时,若线程池中有空闲,则立即原创 2018-01-06 19:28:46 · 364 阅读 · 0 评论 -
Java 缓存行 和 伪共享
Java 缓存行和伪共享最近看了一本书,因为以前不太了解底层原理,所以这块比较薄弱,所以通过本文做下记录和总结。1.缓存行和伪共享的概念1.1 概念阐述在计算机系统中,内存是以【缓存行】为单位存储的,一个缓存行存储的字节是2的倍数。不同机器上,缓存行大小也不一样,通常来说为64字节。伪共享是指:在多个线程同时读写同一个【缓存行】上的不同数据时,尽管这些变量之间没有任何关系,但是在多线程之...原创 2019-06-12 19:08:28 · 1338 阅读 · 0 评论