草庐IT

database-concurrency

全部标签

java - "Java concurrency in practice"- 缓存的线程安全数字分解器( list 2.8)

在以下代码中(复制自JavaConcurrencyinPractice第2章,第2.5节,list2.8):@ThreadSafepublicclassCachedFactorizerimplementsServlet{@GuardedBy("this")privateBigIntegerlastNumber;@GuardedBy("this")privateBigInteger[]lastFactors;@GuardedBy("this")privatelonghits;@GuardedBy("this")privatelongcacheHits;publicsynchronized

java - 为什么 Scala 构建自己的 ForkJoinPool 而不是使用 java.util.concurrent.ForkJoinPool#commonPool?

这个问题在这里已经有了答案:scala.concurrent.forkjoin.ForkJoinPoolvsjava.util.concurrent.ForkJoinPool(1个回答)关闭2年前。Java和Scala都引入了自己的全局ForkJoinPool,Java为java.util.concurrent.ForkJoinPool#commonPool,Scala为scala.concurrent.ExecutionContext#global。这两个似乎都旨在用于相同的用例,特别是运行非阻塞并发任务(通常是隐式的)。现在据我所知,如果你以错误的方式选择互操作依赖项,你最终会得到

Java:Hibernate 看不到 DataBase 的变化

我有两个共享同一个数据库的不同应用程序。问题是当我有一个应用程序更改数据库中的某些内容时,另一个应用程序不会更新。我尝试制作一个session.flush()但它没有用。唯一的方法是关闭整个session并重新创建它,但这当然需要很长时间。 最佳答案 简答:每次你想显示某个对象时发出一个session.refresh(obj)。它将强制Hibernate转到数据库。另一种解决方案是使用StatelessSession,它不会缓存任何内容(甚至一级缓存也不缓存),每次需要记录时都会强制您的应用程序访问数据库:http://docs.j

【参赛作品93】openGauss-An Autonomous Database【PVLDB论文阅读分享】

作者:YAN左使本文基于openGauss在VLDB2021上最新发表的论文《openGauss:AnAutonomousDatabaseSystem》,从学术的角度来探究openGauss如何基于各种AI技术构建一个智能的自治数据库系统。论文作者是清华大学李国良教授,他同时也是openGauss的总架构师。本文主要是对论文的阅读笔记和个人见解,如有错误,欢迎各位指正!1.摘要虽然近年来基于学习的数据库优化技术在学术界得到了广泛的研究,但很多技术还没有被广泛部署到商业数据库系统中。这篇论文的作者探讨如何将基于AI的数据库技术整合到openGauss中,从而构建一个自治数据库系统架构。这些基于A

java - 什么时候使用 java.util.concurrent.Semaphore 的 acquire() 和 acquireUninterruptibly() 方法?

我是Java并发/多线程的新手。有人可以向我解释在什么情况下必须(或不能)使用acquire()和acquireUninterruptibly(),它们有何不同;以及如何使用它们(代码示例?)。非常感谢。 最佳答案 acquire()是可中断的。这意味着如果线程A在信号量上调用acquire(),并且线程B通过调用interrupt()中断线程A,则InterruptedException将在线程A上抛出。另一方面,acquireUninterruptibly()是不可中断的。这意味着如果线程A在信号量上调用acquireUnint

java - 为什么 java.util.concurrent.TimeUnit.convert 抛出 AbstractMethodError 而不是抽象

java.util.concurrent.TimeUnit有这个来源:publiclongconvert(longsourceDuration,TimeUnitsourceUnit){thrownewAbstractMethodError();}为什么这不是一个抽象方法abstractintexcessNanos(longd,longm); 最佳答案 方法声明上方的单行注释如下,//Tomaintainfullsignaturecompatibilitywith1.5,andtoimprovethe//clarityofthegen

java.util.concurrent.LinkedBlockingQueue put 方法在 Scala 中需要 Nothing 作为参数

这是代码片段-importjava.util.concurrent.LinkedBlockingQueuedefmain(args:Array[String]){valqueue=newLinkedBlockingQueuequeue.put("foo")}这给了我-错误:类型不匹配;找到:java.lang.String("foo")要求:无queue.add("foo")我的理解是因为我没有指定进入队列的元素的类型。如果是这样,我们如何在Scala中为LinkedBlockingQueue指定类型而不是默认的通用类型? 最佳答案

java - 内存屏障和 java.util.concurrent.locks.Condition 示例

我对使用Lock提供的Condition时的内存屏障有疑问。关于thejavadocforCondition中提供的示例,我有一个关于使用的问题:intputptr,takeptr,count;难道不应该将这些属性声明为volatile吗?正如我从示例中理解的那样,线程可能看不到例如count的修改。或者是说,当signal()被调用时,自获得锁以来所做的所有修改对其他线程都是可见的?很像synchronizedblock中的一些代码吗?如果是,当调用signal()时,或者当调用锁上的unlock()时,修改是否可见?谢谢。编辑:我在Lock的javadoc中看到:AllLockim

Tomcat DBCP(Database Connection Pool) 数据库连接池入门介绍

拓展阅读从零开始手写mybatis(三)jdbcpool如何从零手写实现数据库连接池dbcp?万字长文深入浅出数据库连接池HikariCP/CommonsDBCP/Tomcat/c3p0/druid对比DatabaseConnectionPool数据库连接池概览c3p0数据池入门使用教程alibabadruid入门介绍数据库连接池HikariCP性能为什么这么快?ApacheTomcatDBCP(DatabaseConnectionPool)数据库连接池-01-入门介绍vibur-dbcp并发、快速且功能完备的JDBC连接池,提供先进的性能监控功能-01-入门介绍介绍一下tomcatdbcpA

java - 如何使用 JPA 2.1 属性 javax.persistence.schema-generation.database.action?

javax.persistence.schema-generation.database.action的允许值为无(不提供任何服务......)创建(仅在应用程序第一次启动时有效,因为如果创建已存在的模式,则由于大多数数据库(例如derby11.x)导致所有进一步启动失败drop-and-create(它永远不会保留任何数据,这引发了为什么它是持久性标准规范的一部分的问题——假设调试目的)drop(对称地失败create成功绝对没有选择使用这些值中的任何一个,我也看不到它们的规范有任何意义-假设您不希望应用程序的用户启动应用程序一次(使用create),破解persistence.xm