answersLogoWhite

0

The fork() system call duplicates the entire process, including all threads, but only the calling thread continues executing in the child process. The child process inherits a copy of the parent process's memory space, but only the thread that invoked fork() is active in the child; other threads are not replicated. As a result, the new child process starts with a single thread, which is a duplicate of the calling thread from the parent process.

User Avatar

AnswerBot

1mo ago

What else can I help you with?

Continue Learning about Engineering

What is a daemon thread?

A daemon thread is often called a "service thread" or a "nonessential thread". The other kind of thread is often called a "user thread."The JVM will exit when all user threads have returned from their run methods. Once all of the user threads have returned, any active daemon threads will be forced to stop running.Let's look at an abstract example to see the difference... Pretend you have written a client-server GUI-based chat client. You'll typically have at least one thread sitting around and listening for input from the other program (the server will listen for input from the client and the client will listen for input from the server). These threads can be set as daemon threads, because you don't want the JVM to keep executing if those are the only threads left.Not let's look at the GUI for your programs. These will be run in a user thread, since you want to make sure that the JVM does not exit until the GUI thread finishes running (you will generally stop these threads from running when the user clicks to close the window).


If 2 different threads hit 2 different synchronized methods in an object at the same time will they both continue?

Of course. The synchronized keyword will ensure that only one thread will ever be allowed to execute a method at once. If two threads are attempting to access two different methods, then each method only has one thread executing it.


Describe a simple scheme in which there are as many lightweight processes as there are runnable threads?

Start with only a single LWP and let it select a runnable thread. When arunnable thread has been found, the LWP creates another LWP to look for anext thread to execute. If no runnable thread is found, the LWP destroys itself.


What is the difference between a Parent Process and Foreground Process?

A parent process is a process that has spawned one or more child processes such that it takes "ownership" of those processes. A foreground process typically means a process that has a user-interface as opposed to a background process which typically does not. Most background processes are services while most foreground processes are applications. It's important to note that the term "process" has a specific meaning in a multi-processing environment. A process is a computer program that has one or more threads of execution. A thread is the machine-level representation of a task and a process may instantiate as many tasks as are required (hardware permitting). All tasks share the same memory space as the process itself, however each task has its own stack for local storage, as well as to enable the thread's function call-and-return mechanism in addition to thread-local exception handling. Every process must have at least one thread of execution typically referred to as the main thread because that is the thread that executes the program's global main function (the entry point of the application) and subsequently instantiates any additional threads required by the main thread. The additional threads are usually called worker threads and any thread can instantiate its own worker threads. Unlike parent/child processes, thread's cannot "own" other threads; the threads are owned by the process. However, it is possible for worker threads to be controlled by other threads in the same process, so in that sense the controlling thread can be said to be a parent thread. When the main function returns, the main thread terminates, however any active threads within the process will continue executing, thus keeping the process "alive". In many cases this would be undesirable particularly if those threads attempt to access shared memory that is released by the main thread. So although there is no notion of ownership amongst threads, any controlling thread that must terminate before its workers have completed their tasks should signal its workers to terminate and then wait for them to terminate before terminating itself. Threads of execution within a process execute concurrently. All this means is that the operating system's task scheduler gives each thread a time-slice of the CPU to do some work, before saving the thread's state and moving onto the next thread (which may belong to another process entirely). Task-switching is so rapid that it can appear as though all threads are executing simultaneously, however that is only physically possible when the CPU has 2 or more cores available. Only one thread may execute upon any single core at any given moment. Multiple threads are typically used to maintain responsiveness. In a GUI environment, a time-consuming task would take up the entire time-slice of a process so it won't be able to respond to any messages on the message queue unless the task specifically checks the queue periodically. However, by using a worker thread to carry out the task, the controlling thread can remain responsive to messages. The message queue can also be used by threads to signal other threads, thus a controlling thread can respond to periodic progress reports from its worker threads if required. In this sense it can be said that the worker threads are background tasks, while the controlling thread is the foreground task.


What is the difference between deadlock and a race condition?

Race ConditionsA race condition occurs when two threads access a shared variable at the same time. The first thread reads the variable, and the second thread reads the same value from the variable. Then the first thread and second thread perform their operations on the value, and they race to see which thread can write the value last to the shared variable. The value of the thread that writes its value last is preserved, because the thread is writing over the value that the previous thread wrote.DeadlocksA deadlock occurs when two threads each lock a different variable at the same time and then try to lock the variable that the other thread already locked. As a result, each thread stops executing and waits for the other thread to release the variable. Because each thread is holding the variable that the other thread wants, nothing occurs, and the threads remain deadlocked.

Related Questions

Does fork duplicated only the calling thread or all threads?

Calling Threads.....


What are the features of daemon thread in java?

Any Java thread can be a daemon thread. Daemon threads are service providers for other threads running in the same process as the daemon thread. For example, the HotJava browser uses up to four daemon threads named "Image Fetcher" to fetch images from the file system or network for any thread that needs one. The run() method for a daemon thread is typically an infinite loop that waits for a service request. When the only remaining threads in a process are daemon threads, the interpreter exits. This makes sense because when only daemon threads remain, there is no other thread for which a daemon thread can provide a service. To specify that a thread is a daemon thread, call the setDaemon() method with the argument true. To determine if a thread is a daemon thread, use the accessor method isDaemon().


Where should liquid teflon lubricants be applied to pipe threads?

Only apply thread sealant to the MALE threads of the pipe.


How do you delete a thread on roblox forum?

Threads on the Roblox forums can only be deleted by Roblox moderators.


How do you lock a thread on the roblox forums?

Only moderators and administrators of Roblox can lock threads on Roblox.


How many threads are there on the average screw?

The average screw has only one thread which winds from top to bottom


What is a daemon thread?

A daemon thread is often called a "service thread" or a "nonessential thread". The other kind of thread is often called a "user thread."The JVM will exit when all user threads have returned from their run methods. Once all of the user threads have returned, any active daemon threads will be forced to stop running.Let's look at an abstract example to see the difference... Pretend you have written a client-server GUI-based chat client. You'll typically have at least one thread sitting around and listening for input from the other program (the server will listen for input from the client and the client will listen for input from the server). These threads can be set as daemon threads, because you don't want the JVM to keep executing if those are the only threads left.Not let's look at the GUI for your programs. These will be run in a user thread, since you want to make sure that the JVM does not exit until the GUI thread finishes running (you will generally stop these threads from running when the user clicks to close the window).


What is the difference between process and thread?

Basically no difference, except that process can use many threads; thread can use only one.


What can cause oil on the spark plugs thread in a vortec 350?

The VALVE covers must be leaking oil, If it is only on the threads.


When lathe cutting threads how do you measure external screw threads to know they have been cut deep enough?

The only sure method is to have the appropriate internal (female) thread eg. a nut available and to try this on the cut thread. If the fit is too tight then another cut or pass must be made on the lathe. If you are cutting both male and female threads to match then cut the female thread first and use it to check the cutting of the male thread. Submitted by Bill Lavery


If 2 different threads hit 2 different synchronized methods in an object at the same time will they both continue?

Of course. The synchronized keyword will ensure that only one thread will ever be allowed to execute a method at once. If two threads are attempting to access two different methods, then each method only has one thread executing it.


What is the Difference between a single threaded file server and a multi-threaded file server?

Single thread means that the processor will wait until one 'process' is complete before it opens a new thread or 'process'. Multi-thread can handle multiple threads simultaneously making it faster and more responsive.