Thread

A term thread means some kind of minimal process in computer science. Processes and threads are used to simulate parallel execution of programcode. But there is a difference between both: a process describes the execution of a whole program. It contains an image of the programs binary executeable code in memory just as it is used for handling memory allocation by the operating system. However a thread is nothing in this way. It does just describe a parallel execution of code inside a process, so one process can hold multiple threads.

The description above is just one very simple definition of a thread. GTA simplifies multithreading alot so everything the script needs to do is to start a thread and perhaps end it somehow. It does not need to handle variable synchronisation or communication between two threads. This is what the game does through internal routines.

Mission Script
Opcodes:
 * 00D7 – Creates a thread
 * 004F – Creates a thread with additional parameters
 * 004E – Ends the current thread
 * 03A4 – Gives a thread a name
 * 0459 – Ends a named thread

CLEO Opcodes:
 * 0A92 – Creates a CLEO thread
 * 0A93 – Ends a CLEO thread
 * 0A95 – Enables thread saving for a CLEO thread
 * 0A9F – Returns the pointer to the current thread
 * 0AAA – Returns the pointer to a named thread
 * 0ABA – Ends a named CLEO thread