利用Aviator和策略模式实现一套简单的流程系统
迷路的老鼠 6年前 (2019-10-12) 11197浏览 5评论
业务开发时,我们经常会面对很多复杂且长的流程,整个流程写下来可能,这个流程可能是一次执行,也可能是分节点,节点需要每次手动触发,那么我们的代码会很复杂,而且对于新手也很难掌握。同时,业务需求可能经常发生变更,又或者我们需要创建同样类似的流程,不得不对...
迷路的老鼠 6年前 (2019-10-12) 11197浏览 5评论
业务开发时,我们经常会面对很多复杂且长的流程,整个流程写下来可能,这个流程可能是一次执行,也可能是分节点,节点需要每次手动触发,那么我们的代码会很复杂,而且对于新手也很难掌握。同时,业务需求可能经常发生变更,又或者我们需要创建同样类似的流程,不得不对...
迷路的老鼠 6年前 (2019-10-10) 5990浏览 2评论
什么是垃圾回收器 Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Allocation)、自动回收(Garbage Collect)功能 内存的分配和回收都发...
迷路的老鼠 6年前 (2019-10-10) 6212浏览 2评论
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃...
迷路的老鼠 6年前 (2019-10-09) 6112浏览 2评论
抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch… ReentrantLock的锁实现是基于Abstrac...
迷路的老鼠 6年前 (2019-10-09) 11428浏览 6评论
最近帮别人做一个app嵌入人脸识别的功能,主要是用一个开源的js库,这里纪录一下,以及碰到的坑。
迷路的老鼠 6年前 (2019-10-09) 6295浏览 3评论
先行发生原则(Happens-Before)是判断数据是否存在竞争、线程是否安全的主要依据。 先行发生是Java内存,模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,那么操作A产生的影响能够被操作B观察到。 Java内存模型中存在的天...
迷路的老鼠 6年前 (2019-10-08) 8205浏览 3评论
volatile和synchronize虽然目前业务层关注的比较少,但是他们是内存模型里面比较特殊的两个关键字,我们可以利用他们来了解一下内存模型里是如何解决多线程问题的。 指令重排 计算机在执行程序时,为了提高性能,编译器和处理器的常常会对指令做重...