つまりメインループとキャラと完全な非同期ってことね
スプライト100個出したら100個のスレッドがたちあがるってことかな?

そうでないにしろ、表示されるタイミングとスプライトの時間管理とのずれが問題になるよね
たとえば1フレームごとに点滅表示させるような場合、それらが同期取れてないのでずっと表示されたり
ずっと消えたままになるよね

各種オブジェクトは内部でカウンタを持って1フレームごとに呼び出されるメソッドで+1していくのが基本だよ
メインループ側(フレームワーク側)とは切り離して独立して動けるようにね

そうすると単体テストが容易になったりするし、見るクラスが1つだけなのでバグもでなくなる
外部からのきっかけがほしい場合はオブザーバーパターンを使えば汎用的になってなおよろし
小規模であまり深く考えないのならpublicなメソッドでもいいと思うけど