Question about threads

Yes, a listener does get called in a new thread, the above post is incorrect.

They are actual threads. Parallelism is not the same as concurrency. They are not “threads”.

Module return values get cached for the computer requiring them, so the second require of the same module will return the same value as was returned by the first require. Clients have separate caches.

Never, under any circumstance, use the spawn function, use coroutines instead. This is because spawn will delay execution of the code for at least 1/30th of a second (because Roblox’s task scheduler runs 30 times a second, think of it as an additional unnecessary wait()), and they are unreliable (also avoid the delay function, wait function, and Debris service for similar reasons).

Horror stories about spawn if you don’t believe me:

8 Likes