Есть ли лучший способ собрать мусор?
blockquote>Да, не используйте
new,delete
или динамическую память вообще:struct Players{}; struct Game{ Game(Players&& players){} }; struct GInfo { GInfo(Players&& players_pair): game(std::move(players_pair)),g_thread(&Game::start, game){} Game game; std::thread g_thread; }; std::list<GInfo> _actives; void someLoop() { while (true) { GInfo& ginfo = _actives.emplace_back(matchPlayers()); } } void garbageCollector() { while (true) { //Since C++20 //_active.remove_if([](GInfo& i){ return !i.game.isActive();}); //Until C++20 auto IT =std::remove_if(_actives.begin(),_actives.end(), [](GInfo& i){ return !i.game.isActive();}); _active.erase(IT,_active.end()); // sleep(2); } }
быть несколько опечаток, но это идея.
Установите для редактирования
на Ложь
и по умолчанию
к вашему значению по умолчанию.
http://docs.djangoproject.com/en/dev/ref/models/fields/#editable
b = models.CharField(max_length=7, default='0000000', editable=False)
Кроме того, ваше поле id
необязательно. Django добавит его автоматически.
Вы можете установить значение по умолчанию следующим образом:
b = models.CharField(max_length=7,default="foobar")
, а затем вы можете скрыть поле с помощью класса Admin вашей модели, например: это:
class SomeModelAdmin(admin.ModelAdmin):
exclude = ("b")