Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
8ad8fe0a
提交
8ad8fe0a
authored
6 年前
作者:
Evgenij Ryazanov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use ConcurrentHashMap instead of Collections.synchronizedMap(new HashMap<>())
上级
205f89dd
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
17 行增加
和
30 行删除
+17
-30
FullTextSettings.java
h2/src/main/org/h2/fulltext/FullTextSettings.java
+3
-3
TcpServer.java
h2/src/main/org/h2/server/TcpServer.java
+3
-2
FilePath.java
h2/src/main/org/h2/store/fs/FilePath.java
+3
-6
SynchronizedVerifier.java
h2/src/main/org/h2/util/SynchronizedVerifier.java
+3
-8
CachedPreparedStatements.java
h2/src/test/org/h2/samples/CachedPreparedStatements.java
+2
-6
TriggerPassData.java
h2/src/test/org/h2/samples/TriggerPassData.java
+3
-5
没有找到文件。
h2/src/main/org/h2/fulltext/FullTextSettings.java
浏览文件 @
8ad8fe0a
...
...
@@ -10,11 +10,12 @@ import java.sql.PreparedStatement;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.concurrent.ConcurrentHashMap
;
import
org.h2.util.SoftHashMap
;
/**
...
...
@@ -45,8 +46,7 @@ final class FullTextSettings {
/**
* The set of indexes in this database.
*/
private
final
Map
<
Integer
,
IndexInfo
>
indexes
=
Collections
.
synchronizedMap
(
new
HashMap
<
Integer
,
IndexInfo
>());
private
final
ConcurrentHashMap
<
Integer
,
IndexInfo
>
indexes
=
new
ConcurrentHashMap
<>();
/**
* The prepared statement cache.
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/server/TcpServer.java
浏览文件 @
8ad8fe0a
...
...
@@ -21,6 +21,8 @@ import java.util.HashSet;
import
java.util.Map
;
import
java.util.Properties
;
import
java.util.Set
;
import
java.util.concurrent.ConcurrentHashMap
;
import
org.h2.Driver
;
import
org.h2.api.ErrorCode
;
import
org.h2.engine.Constants
;
...
...
@@ -49,8 +51,7 @@ public class TcpServer implements Service {
*/
private
static
final
String
MANAGEMENT_DB_PREFIX
=
"management_db_"
;
private
static
final
Map
<
Integer
,
TcpServer
>
SERVERS
=
Collections
.
synchronizedMap
(
new
HashMap
<
Integer
,
TcpServer
>());
private
static
final
ConcurrentHashMap
<
Integer
,
TcpServer
>
SERVERS
=
new
ConcurrentHashMap
<>();
private
int
port
;
private
boolean
portIsSet
;
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/store/fs/FilePath.java
浏览文件 @
8ad8fe0a
...
...
@@ -9,10 +9,8 @@ import java.io.IOException;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.nio.channels.FileChannel
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.
concurrent.ConcurrentHash
Map
;
import
org.h2.util.MathUtils
;
/**
...
...
@@ -25,7 +23,7 @@ public abstract class FilePath {
private
static
FilePath
defaultProvider
;
private
static
Map
<
String
,
FilePath
>
providers
;
private
static
ConcurrentHash
Map
<
String
,
FilePath
>
providers
;
/**
* The prefix for temporary files.
...
...
@@ -66,8 +64,7 @@ public abstract class FilePath {
private
static
void
registerDefaultProviders
()
{
if
(
providers
==
null
||
defaultProvider
==
null
)
{
Map
<
String
,
FilePath
>
map
=
Collections
.
synchronizedMap
(
new
HashMap
<
String
,
FilePath
>());
ConcurrentHashMap
<
String
,
FilePath
>
map
=
new
ConcurrentHashMap
<>();
for
(
String
c
:
new
String
[]
{
"org.h2.store.fs.FilePathDisk"
,
"org.h2.store.fs.FilePathMem"
,
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/util/SynchronizedVerifier.java
浏览文件 @
8ad8fe0a
...
...
@@ -5,10 +5,7 @@
*/
package
org
.
h2
.
util
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.IdentityHashMap
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.atomic.AtomicBoolean
;
/**
...
...
@@ -17,10 +14,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
public
class
SynchronizedVerifier
{
private
static
volatile
boolean
enabled
;
private
static
final
Map
<
Class
<?>,
AtomicBoolean
>
DETECT
=
Collections
.
synchronizedMap
(
new
HashMap
<
Class
<?>,
AtomicBoolean
>());
private
static
final
Map
<
Object
,
Object
>
CURRENT
=
Collections
.
synchronizedMap
(
new
IdentityHashMap
<>());
private
static
final
ConcurrentHashMap
<
Class
<?>,
AtomicBoolean
>
DETECT
=
new
ConcurrentHashMap
<>();
private
static
final
ConcurrentHashMap
<
Object
,
Object
>
CURRENT
=
new
ConcurrentHashMap
<>();
/**
* Enable or disable detection for a given class.
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/samples/CachedPreparedStatements.java
浏览文件 @
8ad8fe0a
...
...
@@ -10,9 +10,7 @@ import java.sql.DriverManager;
import
java.sql.PreparedStatement
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
/**
* This sample application shows how to cache prepared statements.
...
...
@@ -21,9 +19,7 @@ public class CachedPreparedStatements {
private
Connection
conn
;
private
Statement
stat
;
private
final
Map
<
String
,
PreparedStatement
>
prepared
=
Collections
.
synchronizedMap
(
new
HashMap
<
String
,
PreparedStatement
>());
private
final
ConcurrentHashMap
<
String
,
PreparedStatement
>
prepared
=
new
ConcurrentHashMap
<>();
/**
* This method is called when executing this sample application from the
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/samples/TriggerPassData.java
浏览文件 @
8ad8fe0a
...
...
@@ -10,9 +10,8 @@ import java.sql.DriverManager;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
org.h2.api.Trigger
;
/**
...
...
@@ -21,8 +20,7 @@ import org.h2.api.Trigger;
*/
public
class
TriggerPassData
implements
Trigger
{
private
static
final
Map
<
String
,
TriggerPassData
>
TRIGGERS
=
Collections
.
synchronizedMap
(
new
HashMap
<
String
,
TriggerPassData
>());
private
static
final
ConcurrentHashMap
<
String
,
TriggerPassData
>
TRIGGERS
=
new
ConcurrentHashMap
<>();
private
String
triggerData
;
/**
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论