公共课a { 私人静态TitanGraph titanGraph = null; static GraphTraversalSource traversalSource = null;public static void main(String a []){ titanGraph = TitanFunctions ….
你可以使用互斥锁或 synchronized() 阻止以确保在任何给定时间只有一个线程可以执行该操作。以下内容可能有效:
synchronized()
titanGraph = TitanFunctions.getTitanGraph(); traversalSource = titanGraph.traversal(); Runnable r = new Runnable() { public void run() { synchronized(titanGraph){ long ab = traversalSource.V().has("RequestJob", "RequestId", 203) .has("JobLockStatus","F") .property("JobLockStatus", "B").count().next(); titanGraph.tx().commit(); } } }; Thread t1 = new Thread(r, "T1"); Thread t2 = new Thread(r, "T2"); t1.start(); t2.start();
所以上面的块 synchronized(titanGraph) 基本上说,对于该块内部的任何内容,它只能由在括号内对象上锁定的线程执行。在这种情况下 titanGraph 。如果一个线程没有锁,那么它等待锁可用。
synchronized(titanGraph)
titanGraph
这里 是一个非常好的使用教程 synchronized
synchronized