Suppose I have a simple program main() with a global varibale int x=0.
I want to create two threads/process which must access this variable x in sync.
Which one will be better threads( pthread_create ) or process( fork )?
If I go with fork() then will I be able to use the IPC mechanism like semaphore/mutex,conditional variables etc. between the process as I understand that separate variable x will be created for both the process?
Last edited by Scrutinizer; 06-14-2012 at 04:09 AM..
Reason: code tags
if you fork() then you will have two completely independent variables after the fork. This is because fork() creates the exact same image as the currently running process and you end up with two processes. Changing the value after the fork will not change the other process because it's a different address space(the other process).
With threads you will have one variable that can be read/updated by any of the threads. This is possible because the threads exist within the same process. Please read up on the differences between threads and processes.
Hi,
I'm trying to do my homework assignment but I am having trouble using the pthread_create fucntion.
Here is my code________________
//Alicia Johnson
//sum_pid program
//creates n number of threads. These threads create a random number
//then adds the number to a global array. Then... (1 Reply)
The prototype for pthread_create function is like this:-
int pthread_create(pthread_t *thread,pthread_attr_t *attr,void *(*start routine),void *arg);
Q.1 .Why the return type of the start_routine must be void*??
Q.2. Why should we pass arg by converting into void * only ??
Thank You (3 Replies)
Im trying to run an application i compiled (iperf) and i get an error telling me that it cant create the pthread. when i ran the ./configuration one of the things it checked was for pthreads which came back ok.
Im not really sure where to even start to resolve this. i have been unable to find... (5 Replies)
Hi.
I use C++ and I wishes to create a thread with the pthread_create function, my question is, how can I do this if I wish that the function will be a member of the class ??
I know from windows programming that I can declare a static function like this
static unsigned int __stdcall... (7 Replies)
Hello
My problem goes like this:
I have used Pthread_create, and I have tryed to create 2 proccess but nothing happens! It does not even matter what the function im trying to create do. It is if im trying to activate an empty function. This is my code.
Any help will be highly appreciated.... (1 Reply)
Hi
I wanted to learn communication between threads and I used a simple example but
I faced with this error while I have a sofware that uses this functions without
any problem
so would you please help me to know the reason
thanks for your help and great favor.
#include <pthread.h>... (2 Replies)
I have a problem with a C multi-threaded program I am writing. I cannot figure out how to keep the unique key value at the thread level. I wrote a program in C that forked a bunch of processes and then decided to convert it to threads and I can't keep the key unique to each thread. In a nutshell... (3 Replies)
Here is simple code for multithreading in POSIX:
void* simplethread(void* arg)
{
printf("Hello World\n");
}
int main(void)
{
pthread_t id;
pthread_create(&id, NULL, simplethread, NULL);
return 0;
}
Whether the new thread will run or not depends on the OS. Tricky ... (5 Replies)