[Ffmpeg-devel] native win32 threads or pthreads-win32?

Dana Hudes dhudes
Thu Oct 5 16:36:16 CEST 2006

>>>> While making the win32 builds, I came across the decision of using
>>>> either native win32 threads (w32thread.c), or pthreads, with the
>>>> pthreads-win32 library.
>>>> The builds at http://ffdshow.faireal.net/mirror/ffmpeg/ include
>>>> pthreads-win32, but I didn't get any answer from celtic druid about 
>>>> his
>>>> decision.
>>>> Are there any issues that would make me prefer one over the other, 
>>>> such
>>>> as stability or performance 
You will certainly get better performance with native win32 threading if 
you are running natively on win32 rather than cygwin. Are you compiling 
with gcc somehow or are you using Microsoft's compiler? I don't have a 
current MS compiler so I can't build native win32 though I have a dual 
core PIV running win XP. pthreads (POSIX threads) run in user space, 
only. I wouldn't expect them to get scheduled on another cpu. You have 
to understand the various types of threading and indeed what threading 
IS. Threads are running in the context of the parent process -- that's 
the point. Some OS, such as recent Linux kernel and Solaris (I think at 
least Solaris 9, certainly 10 possibly 8 and I doubt 2.6) have kernel 
and user level threads. In fact, a process can be treated as a 
kernel-level thread. The question is whether the OS scheduler, the one 
running the system-wide run queues, is aware that there's this thread 
out there. Otherwise its all just the parent process activity.

You can get a good overview of threading from the Microsoft 
documentation. Back when I taught operating systems, we found a classic 
concurrency example implemened (and throughly documented) on some MS 
website -- IIRC, it was the frog and fly problem. Most of my students, 
the ones not sleeping in class or screwing off their homework, were able 
to understand MS thread model from the code and documentation (combined 
with the foundations on threading and on concurrency from my lectures 
and the textbook (Silberschatz, highly recommended) ) and were then able 
to implement the Barbershop problem at some level. Sine most folks 
reading this are presumably more advanced than junior year undergraduate 
CS students, you should be able to get a good idea of it from the MS 
website in question as well. I don't have the url handy but I'll see 
about digging it up....though this starts to wander off-topic of the list.

More information about the ffmpeg-devel mailing list