Показать сообщение отдельно
Старый 03.10.2019, 21:00   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Если объекты изолированы друг от друга т.е они не взаимодействуют то они будут потоко-безопасными.
Изолировано что от чего? Если ничего ни с чем не взаимодействует, то что же программа делает?

Вот это же вроде не нарушает упомянутый закон Деметра, но не потокобезопасно:
Код:
public class Account {
  private decimal balance = 500.00m;

  public decimal GetBalance() {
    return balance;
  }

  public void Withdraw(decimal amount) {
    if (balance < amount)
      ...;
    balance -= amount;
  }
}

...
class Foo {
  var acc = new Account();
  
  void DoStuff() {
    RunThread(acc);
    RunThread(acc);
  }

  void RunThread(Account acc) {
    var thread = new Thread({
      while (true) {
        acc.Withdraw(1);
      }
    });
    thread.run();
  }
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием