Понимание изменения количества ссылок на объект при работе с очередями

Я не уверен, что это «правильный путь», но он действительно работает так, как вы этого хотите.

Вы можете установить, какой визуализатор будет использоваться для интерфейса loopback, как показано ниже, отредактировать файл /etc/netplan/01-network-manager-all.yaml (или ваш * .yaml-файл):

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    lo:
      renderer: networkd
      match:
        name: lo
      addresses:
        - 172.16.123.1/32

Протестировано и работает как ожидается на рабочем столе Ubuntu 18.04

Надеюсь, это поможет.

1
задан 31 May 2018 в 07:14

1 ответ

Мой вывод 1го примера отличается:

D 3 //Принадлежит переменной и захвачен кложуром
A 2 //В этот момент переменной object не существует, она захвачена только кложуром.
C 3 //Помимо текущего кложура захвачено еще новым кложуром.
B 2 //Тут первый кложур завершен, объект захвачен только текущим кложуром.

Теперь рассмотрим 2й пример. Тут уже видна гонка, каждый раз в лог выводит разный результат и порядок. В первом случае мы вызываем все из главного потока, поэтому только один кложур исполняется в один момент времени. Во 2-м случае у нас отдельная очередь и она сражается с главным потоком - main. D: может вызваться после вызова распечатать D но до выхода из печати, а может вызываться и после как в 1м примере. И это уже влияет на то что выведется в лог.

А вот уже 2й кложур гарантированно вызовется только после завершения 1го кложура - очередь то последовательная.

0
ответ дан 6 June 2018 в 11:59
  • 1
    спасибо за ответ, разобрался – user3555920 31 May 2018 в 10:04
  • 2
    А подскажите пожалуйста почему " В этот момент переменный объект не существует " ? – user3555920 31 May 2018 в 10:12
  • 3
    Сам объект существует, а вот перемен объект уже нет - память освобождена (счетчик ссылок уменьшился на 1) т.к. после выполнения кода вышли за пределы видимости переменной – ViR 31 May 2018 в 10:45
  • 4
    Если мой ответ решил проблему, можно его отметить как решить вопроса;) – ViR 31 May 2018 в 10:47

Другие вопросы по тегам:

Похожие вопросы: