我正在学习使用Vagrant,我试图从VirtualBox GUI内部启动一个Vagrant机器(以推荐方式构建的ubuntu/trusty64"vagrant init ubuntu/trusty64; vagrant up")(双击Vagrant机器的图标) ).但我无法登录:没有用户名,没有密码.
我是否需要添加特定条款,还是有另一种更简单的方法可以做到这一点?
谢谢.
我正在编写一个演示程序来解释如何在Java中调节一组线程的并发性,但结果并不像我预期的那样.这是代码:
package parcountSyncStat;
public class Parcount extends Thread {
private static int N=1000;
private static Integer x=0;
public static void main(String[] args) throws InterruptedException {
Thread[] t = new Thread[N];
int i;
for (i = N-1; i >= 0; i--) {
t[i]=new Parcount();
t[i].start();
}
for ( i=N-1; i>=0; i-- ) t[i].join();
System.out.println(x);
}
public void run() { synchronized(x) { x++; } }
}
Run Code Online (Sandbox Code Playgroud)
简而言之,1000个线程尝试增加相同的整数x.为了保持一致性,我将同步块中的增量包含在内.父线程等待所有进程完成,然后打印x的最终值,该值应为1000.但事实并非如此.我的问题是:为什么?我错了吗?
请注意,我通过实现一个用同步"Increment"方法封装整数的类来获得预期的结果.但是用锁定/解锁对替换synchronized也不起作用.我正在使用Eclipse并且尝试了openjdk和oracle jdk,结果相似.
谢谢