并发
文章平均质量分 96
Henry_Lin_Wind
这个作者很懒,什么都没留下…
展开
-
ForkJoin 并发
分治,顾名思义,即分而治之,是一种解决复杂问题的思维方法和模式;具体来讲,指的是把一个复杂的问题分解成多个相似的子问题,然后再把子问题分 解成更小的子问题,直到子问题简单到可以直接求解。Java并发包里提供了一种叫做Fork/Join的并行计算框架,就是用来支持分治这种任务模型的。如何用Fork/Join 并行计算框架计算斐波那契数列 f(n)=f(n-1)+f(n-...原创 2020-01-06 14:31:07 · 1202 阅读 · 0 评论 -
并行多线程任务的创建
对于简单的并行任务,你可以通过“线程池+Future”的方案来 解决;如果任务之间有聚合关系,无论是AND聚合还是OR聚合,都可以通过CompletableFuture来解决;而 批量的并行任务,则可以通过CompletionService来解决线程池+Future // 线程池private static ExecutorService myExecutor = Exe...原创 2020-01-02 09:52:13 · 1410 阅读 · 0 评论 -
为什么不建议用Executors?
为什么不建议用Executors?Java为什么要创建Executors类? 考虑到ThreadPoolExecutor的构造函数实在是有些复杂,所以Java并发包里提供了一个线程池的静态工厂类Executors,利用Executors你可以快速创建线程池。不建议使用Executors的最重要的原因是:Executors提供的很多方法默认使用的都是无界的LinkedBlockingQueu...原创 2020-03-19 15:40:30 · 3893 阅读 · 0 评论 -
线程和线程池的创建及使用
三种创建线程的方法一、通过继承 Thread 类本身public class MyThread extends Thread { @Override public void run(){ super.run(); System.out.println("执行子线程..."); }}public class Test {...原创 2019-12-30 16:39:33 · 1995 阅读 · 0 评论 -
深入理解乐观锁与悲观锁
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernat...转载 2020-03-18 11:39:35 · 1126 阅读 · 0 评论 -
从同步容器到并发容器
引言容器是Java基础类库中使用频率最高的一部分,Java集合包中提供了大量的容器类来帮组我们简化开发,我前面的文章中对Java集合包中的关键容器进行过一个系列的分析,但这些集合类都是非线程安全的,即在多线程的环境下,都需要其他额外的手段来保证数据的正确性,最简单的就是通过synchronized关键字将所有使用到非线程安全的容器代码全部同步执行。这种方式虽然可以达到线程安全的目的,但存在几个...转载 2020-03-18 11:11:25 · 1149 阅读 · 0 评论 -
如何让 10 个线程按照顺序打印 0123456789
如何让 10 个线程按照顺序打印 0123456789? 设定一个 orderNum,每个线程执行结束之后,更新 orderNum,指明下一个要执行的线程。并且唤醒所有的等待线程。 在每一个线程的开始,要 while 判断 orderNum 是否等于自己的要求值!!不是,则 wait,是则执行本线程。 w...原创 2020-01-13 09:16:36 · 1823 阅读 · 0 评论