摘要:
替换方法 改用windowsAPI获取 [DllImport("kernel32.dll", EntryPoint = "GetSystemTime", SetLastError = true)] internal static extern void GetSystemTime(out SYSTE 阅读全文
摘要:
以多窗口买票为例。 多线程操作共享数据存在安全问题。 是由于数据操作的原子性被破坏导致的。 if语句和之后的operate语句应该具有原子性。没有锁,在if 与 operate 之间可能数据被其他线程修改了。导致数据安全问题。 导致原子性丢失的原因有多个,比如线程自己阻塞,cpu资源调度导致线程挂起 阅读全文
摘要:
IStartupFilter接口的Configure方法就做了一件事,串联委托。将一个委托嵌套在一个新委托里。好比数据结构里面的链表。 public class AutoRequestServicesStartupFilter : IStartupFilter { public Action<IAp 阅读全文
摘要:
转:https://www.cnblogs.com/huangleshu/p/10026222.html /** * 线程的开销 : 线程的创建和销毁 * 线程的上下文切换和调度 * 线程的同步 * * * 多线程的内存模型: 线程独有的工作内存(线程缓存用于提高效率) 所有线程共享的主内存 * * 阅读全文
摘要:
wait可以把某个拿到锁的线程冬眠,并释放锁。 其他线程获取锁,完成工作后,可以通过notify唤醒其他需要这个锁的冬眠进程。 冬眠进程醒了后,尝试获取锁,得到锁后继续工作。 好比一群熊围着一个碗,要吃饭。 1)看到碗里没有饭,就放开碗去睡觉(wait)。以免影响饲养员放食物。碗只能一个动物使用(一 阅读全文
摘要:
(转:https://www.liaoxuefeng.com/wiki/1252599548343744/1306580911915042) 在Java程序中,synchronized解决了多线程竞争的问题。例如,对于一个任务管理器,多个线程同时往队列中添加任务,可以用synchronized加锁: 阅读全文
摘要:
(转)https://blog.csdn.net/andy_zhang2007/article/details/86287786 概述 ApplicationContextAwareProcessor是一个Spring内部工具,它实现了接口BeanPostProcessor,用于向实现了如下某种Aw 阅读全文
摘要:
好比挑水的时候在扁担上找一个合适的位置。不至于前重后轻或前轻后重。 //左旋转方法 private void leftRotate() { //创建新的结点,以当前根结点的值 a Node newNode = new Node(value); //把新的结点的左子树设置成当前结点的左子树 b new 阅读全文
摘要:
好比一个漏斗,里面有木球,乒乓球,钢球。如果我们晃动这个漏斗,在重力作用下,最重的钢球就会现在漏斗底部(根节点)。拿走钢球,再晃动漏斗,次重的木球就会出现在底部。这三种球就按重力顺序排好了。 堆排序通过调整堆(adjustHeap),维持大顶堆。就好比我们通过晃动漏斗(adjustHeap),使最大 阅读全文
摘要:
(转)https://www.jianshu.com/p/5548be3766a9 导读 本文适合长期困扰于设计模式是什么,有什么用,所有的文章都看懂了但还是没理解设计模式的人群。深入分析了五种创建类设计模式,这些设计模式都是在原书《Design Patterns》中直接指出的。开篇介绍了创建类设计 阅读全文