分析 如果某一个栅栏能被刷完,他向左和向右延伸的宽度(包括自己)之和应该不小于刷子的宽度 \(M\),因此,我们可以先处理一下每个栅栏向左向右延伸的宽度。 两个 \(O(n)\) 单调栈搞一下 // 找出以第i个栅栏高度为基准向左向右延伸的长度 // 维护单调递增的栈,这个是向右的 head = 0 ...
分类:
其他好文 时间:
2020-07-01 12:39:20
阅读次数:
44
Exchanger详解 简介 当一个线程到达栅栏时,会检查是否有其他线程已经到达栅栏. 若没有,则该线程进入等待. 若有,则与等待的其他线程交换各自的数据,然后继续执行. 原理 内部类Participant继承自ThreadLocal,用来保存线程本地变量Node. Node存储用于单槽交换和多槽交 ...
分类:
其他好文 时间:
2020-06-30 22:19:49
阅读次数:
93
CyclicBarrier详解 简介 阻塞一组线程,直到某个事件发生. 所有线程必须都到达栅栏位置时,才能继续执行. 使得一定数量的线程反复在栅栏位置汇集.需要等待集合的线程调用await()方法在栅栏处阻塞. 栅栏释放阻塞的线程后会重置以便下一次使用. 核心方法 await()方法 会调用dowa ...
分类:
其他好文 时间:
2020-06-30 22:14:57
阅读次数:
42
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L?i??个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是L?i??的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的 ...
分类:
其他好文 时间:
2020-06-27 15:53:39
阅读次数:
66
1.大纲 CountDownLatch倒计时门闩 Semaphore信号量 Condition条件对象 CyclicBarrier循环栅栏 一:控制并发流程 1.说明 作用让程序员容易得到线程之间的合作 线程之间的合作,满足业务逻辑 2.常见工具类 二:CountDownLatch的使用 1. ...
分类:
其他好文 时间:
2020-06-25 10:15:47
阅读次数:
61
一、使用线程的join方法 二、使用主线程的join方法 三、使用线程的wait方法 四、使用线程的线程池方法 五、使用线程的Condition(条件变量)方法 六、使用线程的CountDownLatch(倒计数)方法 七、使用线程的CyclicBarrier(回环栅栏)方法 八、使用线程的Sema ...
分类:
编程语言 时间:
2020-06-08 19:23:55
阅读次数:
63
工作相关使用到的JDK类及其相关源码、机制 设计模式,设计模式在工作中用到了哪些,具体使用场景 并发类的相关知识,线程安全、锁机制、信号量、闭锁、栅栏、线程池等 框架相关,Spring相关机制、Spring MVC相关机制、MyBatis相关机制、使用的细节点、框架实现原理等 JVM,内存布局、垃圾 ...
分类:
其他好文 时间:
2020-05-18 19:11:17
阅读次数:
66
"F. Fence" 这个刷Fence的问题看到好几个了。。。 题意 有一个栅栏,由n块宽为1cm的木板组成,第i块木板高为hi,要给他们刷上油漆,有一桶红色的可以刷a平方厘米的油漆,一桶绿色的可以刷b平方厘米的油漆。 每块木板只能刷一种油漆。 现在要求出栅栏的不吸引值最小,定义不吸引值:相邻的木板 ...
分类:
其他好文 时间:
2020-05-06 16:44:19
阅读次数:
94
题目描述 和所有人一样,奶牛喜欢变化。它们正在设想新造型的牧场。奶牛建筑师 Hei 想建造围有漂亮白色栅栏的三角形牧场。她拥有 nn 块木板,每块的长度 l_ili? 都是整数,她想用所有的木板围成一个三角形使得牧场面积最大。 请帮助 Hei 小姐构造这样的牧场,并计算出这个最大牧场的面积。 输入格 ...
分类:
其他好文 时间:
2020-05-04 17:43:07
阅读次数:
66
[TOC] 一般解决多线程问题,有以下几种解决方式: 1. Semaphore(信号量) 2. Lock(管程模型),无锁 3. CountDownLatch(计数器) 4. CyclicBarrier(循环栅栏) Semaphore(信号量) Semaphore主要用于控制当前活动线程数目,就如同 ...
分类:
编程语言 时间:
2020-05-03 20:34:24
阅读次数:
64