sajjad4563
جمعه 25 بهمن 1392, 23:28 عصر
سلام
تو این کلاس، متدهای مربوط به برداشت و واریز پول نشون داده شده که سنکرونایز هستن
public class BankAccount {
private float blance;
public synchronized void deposit(float amount) {
blance += amount;
}
public synchronized void withdraw(float amount) {
blance -= amount;
}
}
خوب حالا واسه بررسی هاشون دوحالت رو بررسی میکنیم:
حالت 1، فقط یه شی ازین کلاس موجود است ولی توسط ترد های مختلف متد ها فراخوانی میشوند:
حالا آیا ممکنه که مثلا متد deposit بصورت همزمان توسط چند تا ترد با هم و بصورت همزمان اجرا بشه؟ (خود متد با خودش)
آیا ممکنه که متد deposite و متد withdraw توسط تردهای مختلف باهم اجرا شوند؟(همزمان)
حالت 2، چند شی این کلاس موجود است:
در این حالت هم دو سئوال بالا مطرح هست
ایا در همه این چهار حالت، متدهای میتوانند باهم کار کنند یا نه؟
ممنونم
تو این کلاس، متدهای مربوط به برداشت و واریز پول نشون داده شده که سنکرونایز هستن
public class BankAccount {
private float blance;
public synchronized void deposit(float amount) {
blance += amount;
}
public synchronized void withdraw(float amount) {
blance -= amount;
}
}
خوب حالا واسه بررسی هاشون دوحالت رو بررسی میکنیم:
حالت 1، فقط یه شی ازین کلاس موجود است ولی توسط ترد های مختلف متد ها فراخوانی میشوند:
حالا آیا ممکنه که مثلا متد deposit بصورت همزمان توسط چند تا ترد با هم و بصورت همزمان اجرا بشه؟ (خود متد با خودش)
آیا ممکنه که متد deposite و متد withdraw توسط تردهای مختلف باهم اجرا شوند؟(همزمان)
حالت 2، چند شی این کلاس موجود است:
در این حالت هم دو سئوال بالا مطرح هست
ایا در همه این چهار حالت، متدهای میتوانند باهم کار کنند یا نه؟
ممنونم