Сохранить значение переменной после перезапуска потока



  • Может на форуме есть ответ, не знаю как сформулировать чтобы его найти. Суть в том что в потоке создается переменная, в ней какое то значение, далее я хочу чтобы эта переменная с этим значением сохранилась после перезапуска потока, чтобы я мог выполнить действие в этом потоке в зависимости от значения в этой переменной, изменить ее и передать в следующий перезапуск потока. Глобальные переменные не очень хочется использовать, так как тогда несколько потоков будут между собой конфликтовать. Может кто знает как это реализовать?



  • @derx2012 сохранить в файл?



  • Нет. Создал переменную, поток перезапустился, значение в переменной сохранилось и передалось в поток, чтобы с ней можно было продолжить работать.



  • @derx2012 по вашему описанию вам прекрасно подойдут глобальные плюс возможно запустить функцию в несколько потоков.



  • У каждого потока будет своя такая переменная, делать для каждого потока глобальную не вариант, записывать в одну глобальную с разделителем, возможно, но не удобно будет, понятное дело что это можно сделать так, но если есть вариант хотел бы обойтись без глобальных



  • А как Вы планируете что бы в многопотоке каждый поток знал, какую переменную после перезапуска использовать? По номеру потока?


  • administrators

    @derx2012 said in Сохранить значение переменной после перезапуска потока:

    записывать в одну глобальную с разделителем, возможно, но не удобно будет

    Создайте объект и работайте с объектом в одной глобальной переменной, многопоток будет с ним работать нормально. Например:

    [
      {
        "thread": 1,
        "variable": 
          {
            "variable_1": "значение_1",
            "variable_2": "значение_2",
            "variable_3": "значение_3"
          }
        
      },
      {
        "thread": 2,
        "variable": 
          {
            "variable_1": "второе значение_1",
            "variable_2": "второе значение_2",
            "variable_3": "второе значение_3"
          }
        
      },
      {
        "thread": 3,
        "variable": 
          {
            "variable_1": "третье значение_1",
            "variable_2": "третье значение_2",
            "variable_3": "третье значение_3"
          }
        
      }
    ]