Thread: multiprocessing question

  1. #1
    Registered User
    Join Date
    Aug 2009
    Posts
    192

    multiprocessing question

    well i'm sorta new to muliprocessing to the point were i can use fork() two different ways. One way is to have one main program and have it fork to do different processes. The second way is to have 2 mains and one process just forks into the second main process have both mains run simutaneously. But I wanted to use the second method with two mains, but I dont know how to interproccess communicate the info to each other like if i was sending in an array from one process to another how to do this.

  2. #2
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    "Interprocess communication" is something you have to set up between the processes, using a pipe or socket to send messages back and forth.

    If you want to share variable directly, you need to use the pthread library or something similar.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  3. #3
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by kiros88 View Post
    well i'm sorta new to muliprocessing to the point were i can use fork() two different ways. One way is to have one main program and have it fork to do different processes. The second way is to have 2 mains and one process just forks into the second main process have both mains run simutaneously. But I wanted to use the second method with two mains, but I dont know how to interproccess communicate the info to each other like if i was sending in an array from one process to another how to do this.
    If the two processes are going to communicate a lot, you should consider using threads instead of separate processes. If processes are really what you want, the usual way of communicating data between them is pipes.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  4. #4
    Registered User
    Join Date
    Sep 2001
    Posts
    4,912
    You can use pipes (there are various types), shared memory, signals, etc... What method you use depends on your needs. I learned from this tutorial, and other references are abundant: 6 Linux Interprocess Communications

  5. #5
    Registered User
    Join Date
    Aug 2009
    Posts
    192
    Well I'm developing a network program so I'm not really sure if two processes are better then threads but I just thought since I have a seperate process taking in network frames and then a seperate one using the frame for its own application would it be smarter to just do that all in one process with multiple threads?

  6. #6
    Registered User
    Join Date
    Sep 2004
    Location
    California
    Posts
    3,268
    If I understand you correctly, then yes it would be better to use 1 process with multiple threads. You have 1 thread receiving packets of the wire, and another thread processing those packets. It's a pretty common design pattern if you are not using non-blocking sockets or select().
    bit∙hub [bit-huhb] n. A source and destination for information.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Debugging question
    By o_0 in forum C Programming
    Replies: 9
    Last Post: 10-10-2004, 05:51 PM
  2. Question about pointers #2
    By maxhavoc in forum C++ Programming
    Replies: 28
    Last Post: 06-21-2004, 12:52 PM
  3. Question...
    By TechWins in forum A Brief History of Cprogramming.com
    Replies: 16
    Last Post: 07-28-2003, 09:47 PM
  4. Question about linked lists.
    By cheeisme123 in forum C++ Programming
    Replies: 6
    Last Post: 02-25-2003, 01:36 PM
  5. Question, question!
    By oskilian in forum A Brief History of Cprogramming.com
    Replies: 5
    Last Post: 12-24-2001, 01:47 AM