我有一个四核处理器。我用Java编写了类似这样的东西;
Some.java;
public class Some extends Thread {
private SharedData sharedVal;
private String name;
public Some(SharedData val, String threadName) {
sharedVal = val;
name = threadName;
}
public void run() {
int temp;
while(true) {
temp = sharedVal.GetValue() + 1;
sharedVal.SetValue(temp);
}
}
}
SharedData.java;
public class SharedData {
private int value;
SharedData() {
value = 0;
}
public void SetValue(int d) {
value = d;
}
public int GetValue() {
return value;
}
}
Program.java;
public class Program {
public static void main(String[] args) {
SharedData test = new SharedData();
Some t1 = new Some(test, "thread1");
Some t2 = new Some(test, "thread2");
Some t3 = new Some(test, "thread3");
Some t4 = new Some(test, "thread4");
t1.start();
t2.start();
t3.start();
t4.start();
}
}
我运行程序并检查处理器图形,每个处理器部件看起来都在工作约90%。
我的问题是:如果我可以像这样使用系统资源,那么什么是并行编程?我理解错了吗?我看到了一个在C#中使用处理器数量的示例,这是怎么回事?