Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
My understanding is that it creates another thread and runs compute() in another thread.
then join fetches the result once recursively got it.
I would like to know whether fork() calls compute() or not. Thanks in advance.
The fork method will not call compute. It will push the forked task to a work queue in which the running thread determines if it should eventually call compute itself or notify other threads to steal that task and invoke compute.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I want to run simultaneously two different methods in two different classes
Is run method is the only way?
If it is Why??
Your code snippet does not show how you actually start these threads, I am assuming something like new Thread2().start(). What this does is create a new thread and the new thread proceeds (in the background) to execute its run method (and then terminates when that method returns).
Every thread runs code that is contained with a run() method. That is just how threads work. There has to be some convention to let the JVM know where the code for the thread is.
From within that method, you can call any other method on any other object that you have access to.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 5 years ago.
Improve this question
Why we we use Runnable interface even it has no connection with start() method? Why we can't just write run() method and start?
Why we need to implement run() method,instead of using it directly and start process using start() method?
If you just called the run method directly, it would run on the thread you used to call it. By implementing Runnable and passing your instance into new Thread, you're setting it up so that run will be called on the new thread.
I recommend working your way through the Java Concurrency tutorial, which will go into creating and running threads in detail.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
Hi today in interview they asked a multi threading question that create a procedure in which there is a method getDBConnect() so that atmost 3 threads can access it concurrently. if 4th thraed try to access getDBConnect() method then 4th thread will go on wait state if anyone of 3 thread release the method getDBConnect() then 4th thread will access the getDBConnect() method using simple thread or executor thread.
Please help me to understand how can i make program of multi threading so that above criteria should be satisfied.
I'm not going to write code for you. But I can hint what this question is about. There is very interesting primitive of multithreading synchronization called Semaphore. JDK contains detailed description and sample of use https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I have learnt the concepts of Future ,Fork and Join. Can someone explain differences/similarities between these two. Where to apply which concept.
It's not really comparable.
A Future represents the result of an asynchronous computation and enables you to access the result of that computation when it's done (possibly in the future if the computation takes some time, hence the name).
A Fork/Join pool is a form of ExecutorService (task execution system) that executes its tasks using multiple threads and uses a work stealing algorithm. The result of a fork/join task is a Future.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
How can I know when the thread was stoped and the processor moves to another thread..
Transition between threads harms my calculations, there is some way to know if the thread left and returned to my function?
You can not know when your thread was stopped and the system rescheduled another thread.
But - you can minimize the number of times this event happens by setting the affinity of your thread to one of the processors, and the affinities of the other threads to the other processors.
If you are using Linux, you can use taskset for each thread in the system (get the list by "ps -e") to set the affinities of the other threads to other processors.
This will decrease the load on the processor and will cause it to context-switch less times.
The simple answer is - you can't. Even if you could detect thread context switches it happens far too often to usefully logged.
A better question would be to look at why you need to know. If there is a problem there post it as a question and we can solve the real issue.