1 process, 2 threads, how many cpus?

Julian Elischer julian at elischer.org
Mon Nov 28 04:10:53 GMT 2005

Nicolas Blais wrote:

>As I was looking around the net for some information on pthreading in FreeBSD, 
>I came across something that got my attention:
>"The native user threads cannot concurrently run more than one thread on 
>separate processors at one time. If you are running a single process with 
>multiple CPU-intensive threads in hopes of utilizing multiple processors, you 
>must use Linuxthreads to get this performance."
>Is this still applicable now (FreeBSD 5.4/6/CURRENT)? 
>I'm writing a software that runs 1 process and multiple threads (with pthread) 
>that performs calculations and I was wondering if on a SMP system the threads 
>will run on an independant cpu.  It would be quite pointless to have all 
>threads of the same process sharing a single cpu.
>Also, no matter how many threads I create within a process, 'top' only reports 
>2 threads.  The following 'top' run reports my software ('aite') as using 2 
>threads (when it actually created 4):

so, what version of FreeBSD are you running?
how many processors do you have?
which threading library are you using?

With libpthread you only create as amny kernel threads as you need at 
any instant.
threads suspended in userland do not have associated kernel threads.

>CPU states: 99.2% user,  0.0% nice,  0.8% system,  0.0% interrupt,  0.0% idle
>Mem: 257M Active, 1422M Inact, 189M Wired, 85M Cache, 112M Buf, 49M Free
>Swap: 2000M Total, 2000M Free
>89728 nicblais    2  20    0  4420K  2384K ksesig   0:18 77.44% aite
>Any insight appreciated,

More information about the freebsd-threads mailing list