“Threads” in programming are parallel tasks. They run AT THE SAME TIME as your main program. This can be useful for monitoring inputs or other sensor values. Think of this as another Main Program.
Events are exactly the same thing as a thread, it’s just that Polyscope does a little more house keeping for you. In effect, it will run the code contained in the event ONCE per desired input condition. In fact, the script code Polyscope generates is just a thread:

In short, an event does nothing that a thread cannot do, it just does a little bit of additional prep work for you if you want code to run ONCE as opposed to continuously