Date: Sat, 4 Jun 2005 16:19:39 -0400 From: Aziz Kezzou <french.linuxian@gmail.com> To: ray@redshift.com Cc: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: Re: Fork mystries.... Message-ID: <3727392705060413194e5acda2@mail.gmail.com> In-Reply-To: <3.0.1.32.20050603174714.00a44990@pop.redshift.com> References: <3727392705060316555071c4ad@mail.gmail.com> <3.0.1.32.20050603174714.00a44990@pop.redshift.com>
index | next in thread | previous in thread | raw e-mail
Thank you guys, I got it fork is creating a different process. Currently, I am working a lot that I forget even the basic principales ;-) I need a break ... -aziz On 6/3/05, ray@redshift.com <ray@redshift.com> wrote: > Aziz, > > Fork is for process creation. Look up pthread_create() and/or POSIX > thread > creation, etc. You should be able to find a lot of info on google with a > quick > search: > > http://math.arizona.edu/~swig/documentation/pthreads/ > > From the OS standpoint a process is like a different program when you fork > it. > A thread is more like a single program with a bunch of subsections all > running > at the same time, then the OS and CPU jump back and forth giving a little > run-time to each subsection. Threads share a common space; processes [as > far as > I recal] do not (which is where inter process communication comes into > play). > > Anyway, have fun! :) > > Ray > > > At 07:55 PM 6/3/2005 -0400, Aziz Kezzou wrote: > | Hi all, > | It's probably not the right mailing list to ask but I am really > | surprised about global variable sharing in a multithreaded C > | application. If I remember well my multithreading course global > | variables are shared between threads, right ? > | > | Example : > | ---------------------------- > | int counter = 0; > | int main() { > | if( fork()==0) { > | while(1) { > | sleep(1); > | counter++; > | printf("Son : counter = %d\n", counter); > | } > | } else { > | while(1) { > | sleep(1); > | printf("Parent : counter = %d\n", counter); > | } > | } > | return 0; > | } > | ---------------------------- > | > | All I get is : > | Parent : counter = 0 > | Son : counter = 1 > | Son : counter = 2 > | Parent : counter = 0 > | Son : counter = 3 > | Parent : counter = 0 > | Son : counter = 4 > | Parent : counter = 0 > | > | why counter isn't shared between the two threads ??! > | thanks, > | -aziz > | _______________________________________________ > | freebsd-hackers@freebsd.org mailing list > | http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > | To unsubscribe, send any mail to > "freebsd-hackers-unsubscribe@freebsd.org" > | > | >help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3727392705060413194e5acda2>
