I suppose that your thread communicates with an external feed to receive updates it will forward to Lightstreamer Server through "smartUpdate";
in this case, you can start it from "init", but you should take care of not calling "smartUpdate" (hence discarding the updates) until "subscribe" is invoked by the Server.
Only upon "subscribe" will you enable the thread to invoke "smartUpdate" and, while doing that, you will get the "itemHandle" needed by "smartUpdate" and pass it to your thread.
Eventually, upon "unsubscribe", you will prevent the thread from invoking "smartUpdate" again.

Alternatively, you could invoke "update" in place of "smartUpdate".
With "update", the "itemHandle" is not needed and the involved item is identified by the item name.
In this case, you could invoke "update" regardless that "subscribe" has been invoked, but note that in this case the Server will discard the update and will issue a warning message in the log.