Ik wil in mijn programma een "globale" variabele,
waar alle threads gebruik van kunnen maken.
Als ik bijvoorbeeld de ene thread eerst die variabele op 3
laat zetten, moet dat in een andere thread ook 3 worden.
een beetje volgens dit idee:
Ik heb al gegoogled maar omdat ik geen C-guru ben
kom ik er niet uit...
Ik weet dat het niet standaard met fork() kan, omdat fork
een copy-on-write memory strategie heeft. Maar wat
zou dan in dit geval wel handig zijn?
waar alle threads gebruik van kunnen maken.
Als ik bijvoorbeeld de ene thread eerst die variabele op 3
laat zetten, moet dat in een andere thread ook 3 worden.
een beetje volgens dit idee:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
if(fork()>0){
//het ene kind gaat nu steeds i++ doen
while(1){
i++;
sleep(1);
}
}
if(fork()>0){
//het andere kind gaat i printen.
//omdat ik wil dat i een gedeelde variabele is,
//zou in deze printf i dus ook moeten veranderen.
while(1){
printf("%d\n",i);
sleep(1);
}
}
sleep(100);
exit(0);
} |
Ik heb al gegoogled maar omdat ik geen C-guru ben
kom ik er niet uit...
Ik weet dat het niet standaard met fork() kan, omdat fork
een copy-on-write memory strategie heeft. Maar wat
zou dan in dit geval wel handig zijn?