multithreading - 我如何在Neo4j中使用并行事务?

标签 multithreading transactions neo4j

我目前正在使用Neo4j作为嵌入式数据库的应用程序上工作。

我想知道如何确保单独的线程使用单独的事务。通常,我会将数据库操作分配给事务,但是我发现的代码示例不允许确保写操作使用单独的事务:

try (Transaction tx = graphDb.beginTx()) {
    Node node = graphDb.createNode();
    tx.success();
}

由于graphDB将被用作线程安全的单例,我真的不知道它如何工作...(例如,对于多个用户在单独的交易中创建购物 list 的情况)。

我要指出我误解了Neo4j中的事务处理概念,对此我将不胜感激。

致以最诚挚的问候,在此先感谢您,
奥立佛

最佳答案

如果由多个线程执行,则您发布的代码将在单独的事务中运行,每个线程一个事务。

实现此方法的方式(这是一种很常见的模式)是针对ThreadLocal存储事务状态(阅读Javadoc,一切都会变得很清楚)。

关于multithreading - 我如何在Neo4j中使用并行事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29015780/

相关文章:

neo4j - 如何在没有 REST API 的情况下为 neo4j 集群配置用户和密码

java - 为什么 VisualVM 本身运行 50 个线程?

c# - 是否有任何静态代码分析工具可以查看可能导致死锁的潜在执行路径(C#)

java - neoj4 2.2.2 是否支持 java 8?,neo4j/bin/utils 脚本错误

database - 从图中排除节点时出现问题

c# - 尽管我没有回滚我的事务,但 SQLite 事务没有成功?

python - 在PyQt中取消后台任务(终止QThread)

java - newCachedThreadPool 和 ThreadFactory

spring - 具有不同传播的 @Transactional 超时属性如何工作

mysql - Symfony/Doctrine : Transaction involving multiple objects/functions