Re: gthreads vs pthread
- From: Chris Vine <chris cvine freeserve co uk>
- To: "Juan Pablo L." <jpablolorenzetti hotmail com>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: gthreads vs pthread
- Date: Wed, 27 Oct 2010 00:04:54 +0100
On Tue, 26 Oct 2010 22:41:44 +0000
Juan Pablo L. <jpablolorenzetti hotmail com> wrote:
Hello, i m using threads in a glib-only project, a service daemon, i
have implemented them using GThreads, but i see now that GThreads is
only a wrapper around pthreads (with the corresponding overhead from
doing so) and does not provide any additional benefit (if i dont
mistake the only real benefit is the cross platform feature).
[snip]
I doubt very much you will notice any difference. Compared to the
overhead of starting new threads and potential contention on mutexes,
wrapping costs are likely to be negligible. There is a case for using
pthread directly if you are using your own wrappers for automatic
lifetime management and exception safety in, say, C++, or if you want
to use thread cancellation, or the small number of other features
supported by pthread but not by GThreads.
1. if i dont issue the g_thread_init, at the beginning of my
application, will there be any problem in glib itself? some functions
or functionality willl cease to work or work incorrectly ?
You must call g_thread_init() if more than one thread might call glib
functions in order to make glib thread safe. So call g_thread_init() in
a multi-threaded program.
2. Can i
just use Glib with pthread instead of GThread ? i know that the main
loop and GAsyncQueue will work out of the box.
Yes, provided you have called g_thread_init().
3. The documentation
says that by issuing g_thread_init Glib will become thread safe, i
dont understand this, if i dont issue the command Glib will not work
in a multithreated environment ?
It won't, no. See above.
4. If in the future i use glib in
another project and decided to use pthread in my code but i know GTK
uses GThread inside, will this be a problem? will it be overhead
because i would be using pthreads and GThread together ?
No. As you have already deduced, GThread is a wrapper for pthread in
unix-like environments.
Chris
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]