随笔分类 -  多线程

线程竞争 锁 多任务提交
摘要:分布式之数据库缓存双写一致性方案解析 阅读全文
posted @ 2021-03-11 21:04 陶朱公Boy 阅读(153) 评论(0) 推荐(0) 编辑
摘要:synchronized在使用的时候底层细节你了解吗,相信很多同学对细节很少关注;比如竞争失败了的线程怎么安置,每个对象的监视器,线程执行synchronized时,其实是获取对象的监视器才能进入同步代码,如果没有获取监视器 则会进入同步队列等待,等获取监视器的线程释放锁,然后同步队列的线程会重新尝试获取对象监视器,这个过程也蛮重要 阅读全文
posted @ 2020-10-21 17:59 陶朱公Boy 阅读(332) 评论(0) 推荐(0) 编辑
摘要:java内置锁实现锁住代码块方案一般有两个方案 1.多线程只操作一个对象 2.锁住XX.class实现, 每次只有一个对象进入方法 synchronized(this) 以及非 static 的 synchronized 方法,只能防止多个线程同时执行同一个对象的同步代码块。即 synchronized 锁住的是括号里的对象,而不是代码块 阅读全文
posted @ 2019-11-11 14:18 陶朱公Boy 阅读(3266) 评论(0) 推荐(0) 编辑
摘要:CyclicBarrier适用于这样的情况:你希望创建一组任务,它们并行的执行工作,然后在进行下一步步骤之前等待,直至所有任务都完成,它使得所有的并行任务都将在删栏出列队,因此可以一致的向前移动。 当调用await时 指定的任务运行完后会awiat 直到最后一个线程运行完毕,才继续执行下一步动作 用法和countDownLatch差不多 countDownLatch只触发一次,而CyclicBarrier可以多次重用 阅读全文
posted @ 2019-03-27 21:05 陶朱公Boy 阅读(758) 评论(0) 推荐(0) 编辑
摘要:LockSupport 阅读全文
posted @ 2019-02-28 11:04 陶朱公Boy 阅读(187) 评论(0) 推荐(0) 编辑
摘要:LockSupport.park LockSupport.unpark 阅读全文
posted @ 2019-02-25 14:52 陶朱公Boy 阅读(840) 评论(0) 推荐(2) 编辑
摘要:多线程并行threadPool且通过countDownLatch即所谓的闭锁控制线程最终的终止状态 ;方便统计最终处理数 及花费的业务时间 阅读全文
posted @ 2018-12-05 14:12 陶朱公Boy 阅读(470) 评论(0) 推荐(0) 编辑
摘要:在JAVA多任务并行执行的开发过程中,笔者有一点疑惑 corePoolSize maximumPoolSize 这几个参数跟OS具体关系是什么呢? 我线程JAVA的线程与内核的线程关系梳理一下,清楚了原理会比较好理解。 因为从JMM层面 JVM线程其实最终是一个所谓轻量级进程的概念与系统内核线程(每个内核线程视为内核的一个分身)是一比一的关系,其实最终还是要调用内核线程 内核通过操纵调度器对线程进行分配资源,负责将任务给各个处理器上处理; 所以这个线程数还是受限于OS层面的线程数,明白这个就OK。所以最大线程数不是越大越好 过大也没什么作用还是要根据OS本身的参数进行适配。 像上面的corePoolSize如果处理的各个任务理论上马上就能完成 其实不用设置的过大,尽量复用线程 maximumPoolSize最大就是OS内核线程数 超过这个也没什么意义 阅读全文
posted @ 2018-11-13 17:41 陶朱公Boy 阅读(2623) 评论(0) 推荐(0) 编辑
摘要:发布定义: 指一个对象可以在对象的作用域范围以外使用。 溢出定义: 当某个不应该发布的对象被发布时称为溢出。 阅读全文
posted @ 2018-08-30 10:19 陶朱公Boy 阅读(246) 评论(0) 推荐(0) 编辑
摘要:从原理上讲其实Thread.yeild方法其实只是给线程调度机制一个暗示:我的任务处理的差不多了,可以让给相同优先级的线程CPU资源了;不过确实只是一个暗示,没有任何机制保证它的建议将被采纳 阅读全文
posted @ 2018-08-26 21:17 陶朱公Boy 阅读(1252) 评论(0) 推荐(0) 编辑
摘要:JAVA提供了一种内置锁的机制来支持原子性,同步代码块。同步代码块分两部分组成:1)一个是作为锁的对象引用2)由这个锁保护的代码块 注意点:以关键字sync...修饰的方法就是一种横跨整个方法体的同步代码块,其中该同步代码块的锁就是方法调用所在的对象。 阅读全文
posted @ 2018-08-22 14:32 陶朱公Boy 阅读(202) 评论(0) 推荐(0) 编辑
摘要:通过关闭线程底层资源关闭类似synchronized及IO阻塞的情况 阅读全文
posted @ 2018-07-04 18:56 陶朱公Boy 阅读(195) 评论(0) 推荐(0) 编辑
摘要:唯品会开发手册-并发处理 阅读全文
posted @ 2018-07-03 16:42 陶朱公Boy 阅读(418) 评论(0) 推荐(0) 编辑
摘要:高并发之线程状态 阅读全文
posted @ 2018-07-03 16:09 陶朱公Boy 阅读(171) 评论(0) 推荐(0) 编辑
摘要:wait,notify,notifyAll 阅读全文
posted @ 2018-07-03 15:34 陶朱公Boy 阅读(930) 评论(0) 推荐(1) 编辑
摘要:ReentrantLock 显示锁 阅读全文
posted @ 2018-06-29 14:24 陶朱公Boy 阅读(124) 评论(0) 推荐(0) 编辑
摘要:捕获线程异常信息 阅读全文
posted @ 2018-06-28 16:38 陶朱公Boy 阅读(330) 评论(0) 推荐(0) 编辑
摘要:如果某个线程在另一个线程t上调用t.join;那么此线程将被挂起,直到目标t线程的结束才恢复即t.isAlive返回为假 阅读全文
posted @ 2018-06-27 17:11 陶朱公Boy 阅读(1105) 评论(0) 推荐(0) 编辑
摘要:如果你想在任务返回后带一个返回值,可以实现Callable接口 , executorService.submit返回带结果的future对象[执行了call方法后返回 , 调用get会一直阻塞直到结果返回 阅读全文
posted @ 2018-06-26 18:06 陶朱公Boy 阅读(3587) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示