Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 03 Jun 2005 17:47:14 -0700
From:      ray@redshift.com
To:        Aziz Kezzou <french.linuxian@gmail.com>, freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   Re: Fork mystries....
Message-ID:  <3.0.1.32.20050603174714.00a44990@pop.redshift.com>
In-Reply-To: <3727392705060316555071c4ad@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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"
| 
| 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3.0.1.32.20050603174714.00a44990>