Re: Work woth GUI from a thread that was made by pthread_create function



On 14 Feb 2002, Soeren Sandmann wrote:

> 
> [dropping gtk-devel-list - that list is for development *of* gtk+ and
>  friends, not development *with* them]
> 
> Pavel Machek <pavel ucw cz> writes:
> 
> > > That's a bit strong to say use heavy processes, not threads.  The glib
> > > and gdk functions do make it easy to attach handlers to i/o events,
> > 
> > Why? Process switch is not much slower than thread switch. Processes
> > are more portable, easier to debug, .... 
> 
> ..., don't limit stack size, don't impose locking thoughout all
> libraries such as libc, glib, ...
> 
> The *only* advantage to threads over processes is that communication
> between them is simpler because they live in the same address
> space. This is also the reason they are difficult to debug.
> 

You can do communication between processes using shared mmaps. A mmap
is in the same address space just like with using threads.

> I don't believe that process switches are significantly slower than
> thread switches, but if it really is a bottleneck important enough
> that it matters, you are doing something stupid, like creating a
> thread/process per client or otherwise having the number of
> threads/processes depend on the size of your data. If you do that,
> context switches will kill you, no matter if you use threads or
> processes.
> 
> In many cases where you think you want threads, you think so because
> you want your user interface to stay responsive during lengthy
> computations or i/o operations. That's definitely an admirable goal,
> but there are better ways to do it than threads. Glib's mainloop has
> all the primitives you need.
> 

I think the main reason for using threads at this point of time is that
you have all the necdcessary "middleware" but would need to invent it
otherwise. 

	Sander

	I see a dark sail on the horizon
	Set under a dark cloud that hides the sun
	Bring me my Broadsword and clear understanding




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]