Avatar billede cybermike Nybegynder
05. juni 2004 - 11:13 Der er 8 kommentarer og
1 løsning

Fork process

Hvordan forker jeg en process i java? Det jeg mangler er en java udgave af den her:

FORK(2)                    Linux Programmer's Manual                  FORK(2)



NAME
      fork - create a child process

SYNOPSIS
      #include <sys/types.h>
      #include <unistd.h>

      pid_t fork(void);

DESCRIPTION
      fork  creates a child process that differs from the parent process only in its PID and PPID, and in the fact that resource utilizations are set to 0.
      File locks and pending signals are not inherited.

      Under Linux, fork is implemented using copy-on-write pages, so the only penalty incurred by fork is the time and memory  required  to  duplicate  the
      parent's page tables, and to create a unique task structure for the child.

RETURN VALUE
      On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution.  On
      failure, a -1 will be returned in the parent's context, no child process will be created, and errno will be set appropriately.

ERRORS
      EAGAIN fork cannot allocate sufficient memory to copy the parent's page tables and allocate a task structure for the child.

      ENOMEM fork failed to allocate the necessary kernel structures because memory is tight.

CONFORMING TO
      The fork call conforms to SVr4, SVID, POSIX, X/OPEN, BSD 4.3.

SEE ALSO
      clone(2), execve(2), vfork(2), wait(2)




Linux 1.2.9                      1995-06-10                          FORK(2)
Avatar billede arne_v Ekspert
05. juni 2004 - 11:16 #1
Det gør du ikke.

Java bruger threads ikke forking.

Løser samme problemer men er et helt andet koncept.

For en meget kort intro læs:
  http://www.eksperten.dk/artikler/27
Avatar billede arne_v Ekspert
05. juni 2004 - 11:17 #2
Du kan starte en process med Runtime.getRuntime().exec("bla bla bla"), men
det er system funktionen fra C - ikke fork.
Avatar billede arne_v Ekspert
16. juni 2004 - 22:10 #3
OK ?
Avatar billede arne_v Ekspert
21. juni 2004 - 22:25 #4
?
Avatar billede cybermike Nybegynder
25. juni 2004 - 21:33 #5
Nej processen skal starte og koere videre i baggrunden mens den shell hvor det er startet fra returnes, ligesom en http deamon.
Avatar billede arne_v Ekspert
25. juni 2004 - 21:37 #6
Den teknik er meget Unix (inkl. Linux) specifikt.

Java kan ikke gøre noget sådant.

Brug Runtime.getRuntime().exec("...") til at starte en ny process i baggrunden.
Avatar billede arne_v Ekspert
09. august 2004 - 00:02 #7
OK ?
Avatar billede arne_v Ekspert
22. august 2004 - 23:22 #8
??
Avatar billede cybermike Nybegynder
28. marts 2005 - 19:19 #9
Nej stadig ikke ok, vi har sat folk til at arbejde paa en loesning nu :) Tak for forsoeget.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester