Java for 线程中的循环

标签 java multithreading for-loop

我是初学者,母语不是英语,所以请耐心等待我和我的英语。

我试图理解线程中的 for 循环。我在这里遇到线程问题。这些线程代表从帐户中提取资金的方法,而另一个线程则向该帐户添加资金。

您的账户上一开始有 1000 欧元。

问题是我不明白为什么必须有一个带有这些数字的 for 循环。我得到i = 0;i ++ ,但为什么 i <1200000

我用这个 i < 1200000; 取得了什么成就? ?

这是我的主题:

第一个从帐户中取钱。

public class AfThread extends Thread {
private Rekening deRekening;
public AfThread(Rekening r) {
 deRekening = r;
 }
public void run() {

for (int i = 0 ;i < 1200000 ;i++ ) {
  deRekening.neemOp(600.00);
if (deRekening.getSaldo() < 0)
System.out.print("rood "); // wordt met wait() nooit uitgevoerd
 }
  }
   }

添加线程:

public class BijThread extends Thread {
private Rekening deRekening;
public BijThread(Rekening r) {

deRekening = r;
}

public void run() {
for (int i = 0 ;i < 1200000 ;i++ ) {
deRekening.stort(600.00);
}
 }
  }

最佳答案

请原谅我非常非常非常陈旧的荷兰语......

第一个线程将尝试从帐户中提取/扣除 (neemOp) 600。 for 循环执行了 1200000 次。如果帐户低于零,它将打印出“rood”,这意味着红色(我认为???),我认为这意味着帐户为负数“已变成红色”(用英语术语)。

第二个线程将向帐户添加/存入(存储)600 美元。 for 循环执行了 1200000 次。

为什么?普通客户不会去 ATM 机 1200000 次。我的猜测是这些是某些测试的一部分。您正在模拟大量独立的存款和扣除。考虑一下您是否有数千名客户。有时,客户可能会在存款(例如自动付款)的同一时间提取现金。在软件中,存款可能是在与取款不同的线程上进行的。您需要绝对确定这不会造成问题,否则您将会有很多愤怒的客户!

此测试并不完美,但通过在两个单独的线程上混合数百万次存款和取款,它试图验证没有发生任何奇怪的情况。测试结束时,帐户的金额应与开始时的金额相同。

alstublieft

关于Java for 线程中的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30673732/

相关文章:

java - Long 列表如何检查它是否包含值?

python - Python 3 中的 XMPP 线程接收器

java - 如何在循环中声明标签?

r - 将变量名称分配给具有多个变量的数据框中的非 NA

英特尔 HD 3700 linux 的 Java 8 Swing 渲染问题

java - 如何等待 spring cron 作业从 ant build 脚本完成

Java ForkJoinPool - 队列中的任务顺序

c - Openmp:增加循环迭代次数

java - 无法保留 Volley 响应值以供进一步使用,它变为空

c++ - 从 Qt 中的错误中恢复