Java并发编程
超大板栗
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在什么场景下使用多线程技术?
业务分为两个执行过程,分别是A和B。当A业务发生阻塞情况时,B业务的执行不依赖A业务的执行结果,这时可以使用多线程技术来提高运行效率;如果B业务的执行依赖A业务的执行结果,则可以不使用多线程技术,按顺序进行业务的执行。一旦系统中出现了阻塞现象,则可以根据实际情况来使用多线程技术提高运行效率。原创 2023-02-20 17:46:33 · 832 阅读 · 0 评论 -
Spring事务失效的几种原因分析
1、spring的事务注解@Transactional只能放在public修饰的方法上才起作用,如果放在其他非public(private,protected)方法上,虽然不报错,但是事务不起作用 2、如使用mysql且引擎是MyISAM,则事务会不起作用,原因是MyISAM不支持事务,可以改成InnoDB引擎 3、Spring团队建议在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。在接口上使用 @Transactional 注解,只能当你设置了基原创 2021-08-13 10:08:11 · 473 阅读 · 0 评论 -
AQS之CountDownLatch(应用场景)
CountDownLatch又叫计数器,他通过一个共享的计数总量来控制线程锁的获取,当计数器总量大于0时,线程将被阻塞,不能够获取锁,只有当计数器总量为0时,所有被阻塞的线程同时被释放。 应用场景 实现最大的并行性:有时我们想同时启动多个线程,实现最大程度的并行性。例如,我们想测试一个单例类。如果我们创建一个初始计数为1的CountDownLatch,并让所有线程都在这个锁上等待,那么我们可以很轻松地完成测试。我们只需调用 一次countDown()方法就可以让所有的等待线程同时恢复执行。 开始执行前原创 2021-05-14 17:51:39 · 358 阅读 · 0 评论 -
AQS之Semaphore(信号量)应用场景
Semaphore 剩余的许可证,如果为0则阻塞。 应用场景: 1.控制线程最大并发数 2.异步任务,同步返回 3.加锁 (1个整形信号量即可模拟互斥锁)原创 2021-05-14 16:59:26 · 376 阅读 · 0 评论
分享