【发布时间】:2014-05-31 14:22:47
【问题描述】:
C类:
class C extends Thread
{
public static int cr;
C(int n)
{
cr = n;
}
public void run()
{
go();
}
synchronized void go()
{
for (int i = 0; i < 10000; i++)
{
cr++;
}
}
}
开课
class Launch
{
public static void main(String args[]) throws InterruptedException
{
C[] c = new C[10];
for (int i = 0; i < 10; i++)
{
c[i] = new C(0);
}
for (int i = 0; i < 10; i++)
{
c[i].start();
}
System.out.println(C.spaces);
}
}
它给我的不是 100,000,而是低于 100k 的数字。为什么?我做了go()同步的方法,所以它一次只能被一个线程使用..?我错过了什么?
【问题讨论】:
-
什么是同步on?
标签: java multithreading thread-safety