This function creates a new thread. The new thread starts by invoking
func with the argument data. The thread will run until func returns
or until glib.thread.Thread.exit is called from the new thread. The return value
of func becomes the return value of the thread, which can be obtained
with glib.thread.Thread.join.
The name can be useful for discriminating threads in a debugger.
It is not used for other purposes and does not have to be unique.
Some systems restrict the length of name to 16 bytes.
If the thread can not be created the program aborts. See
glib.thread.Thread.tryNew if you want to attempt to deal with failures.
If you are using threads to offload (potentially many) short-lived tasks,
#GThreadPool may be more appropriate than manually spawning and tracking
multiple #GThreads.
New threads by default inherit their scheduler policy (POSIX) or thread
priority (Windows) of the thread creating the new thread.
This behaviour changed in GLib 2.64: before threads on Windows were not
inheriting the thread priority but were spawned with the default priority.
Starting with GLib 2.64 the behaviour is now consistent between Windows and
POSIX and all threads inherit their parent thread's priority.
This function creates a new thread. The new thread starts by invoking func with the argument data. The thread will run until func returns or until glib.thread.Thread.exit is called from the new thread. The return value of func becomes the return value of the thread, which can be obtained with glib.thread.Thread.join.
The name can be useful for discriminating threads in a debugger. It is not used for other purposes and does not have to be unique. Some systems restrict the length of name to 16 bytes.
If the thread can not be created the program aborts. See glib.thread.Thread.tryNew if you want to attempt to deal with failures.
If you are using threads to offload (potentially many) short-lived tasks, #GThreadPool may be more appropriate than manually spawning and tracking multiple #GThreads.
To free the struct returned by this function, use glib.thread.Thread.unref. Note that glib.thread.Thread.join implicitly unrefs the #GThread as well.
New threads by default inherit their scheduler policy (POSIX) or thread priority (Windows) of the thread creating the new thread.
This behaviour changed in GLib 2.64: before threads on Windows were not inheriting the thread priority but were spawned with the default priority. Starting with GLib 2.64 the behaviour is now consistent between Windows and POSIX and all threads inherit their parent thread's priority.