#SquirrelJME: There was a bug in my thread initialization code where it would start running the thread's code but it would be too quick to read the thread ID (which is still not set), so I just needed a lock to ensure that the thread ID is valid.
@electroCutie The real thread ID is generated when the thread starts (since it could be reused potentially), doing `new Thread()` does not actually start a thread just `Thread.start()` does.