我正在使用带有Java API的MongoDB编写一些Java代码,我不确定Javadoc的某些部分.
在多线程上下文中,我使用DBCollection.html#update(com.mongodb.DBObject,com.mongodb.DBObject)来更新唯一文档,但我看到两个线程可能会尝试并发写入.在这种情况下,我观察到只有一次写入,因为Mongodb似乎使用乐观的写锁定,但我想以编程方式找出写入是哪个线程的写入,哪一个不是.由于"无更新"行为是沉默的(我的意思是没有异常或其他东西),我搜索API以某种方式回答我的问题,并在一些测试后发现了这个方法:WriteResult#getN()
public int getN()
Gets the "n" field
Returns:
Run Code Online (Sandbox Code Playgroud)
描述是,哼......并不是真的详尽无遗.我的测试显示,赢得写入的线程有一个返回1的getN(),另一个为0.
所以我的问题是:有人可以证实吗?
我有这个简单的for循环但不幸的是我无法成功运行它.
这就是我所拥有的:
对于循环
var imagesPerPage = 2
for (i = 0; i < response.d.length; i++) {
if (i > imagesPerPage) {
alert('more');
}else{
alert('less');
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码first如果我有<= 2然后我得到"less"警报twice.但是当我有> 2时,我会得到"less"警报twice和"more"警报once.
有谁能说我哪里出错了?
我目前正在开发一个使用 ZXing 生成二维码作为图像的应用程序。这是一个简单的例子:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
public class MyQREncoder {
/**
* @param args
* @throws WriterException
* @throws IOException
* @throws FileNotFoundException
*/
public static void main(String[] args) throws WriterException, FileNotFoundException, IOException {
String text = "Some text to encode";
int width = 300;
int height = 300;
BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE,width,height);
String file = "plop.png";
String format = "png";
MatrixToImageWriter.writeToStream(bitMatrix, format, …Run Code Online (Sandbox Code Playgroud)