Thread scheduling

how can i control execution of multiple threads in a sequence?
  thread1 > thread2 > thread3 > thread1 ......

  i thought about writing a schedular but when i wrote it i had problems about switching because the threads scheduled can also have their own sleep or wait conditions.

  is there any robust solution for this kind of things?
sunny012097Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
objectsCommented:
if u want them to run consecutely then why run them in seperate threads, just call them consecutively from the one thread.

if they are seperate threads, then either don't start the next thread until the previous is finished, or call join() on the previous at the start of each thread to wait until it completes.
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
babuno5Commented:
Hello
well u can try setting the priority of each thread which might just help you out

Thread.setPriority(int );
Thread.MIN_PRIORITY;
Thread.NORM_PRIORITY;
Thread.MAX_PRIORITY;

or u could also try synchronizing the threads.
0
 
sciuriwareCommented:
Don't fumble with priorities! Follow objects' advise thats the perfect answer!

;JOOP!
0
 
ThummalaRaghuveerCommented:
Some thing funny...

Have an instance of a class(WhoNext) which here contains a whoNext boolean array....
If Thread 1 is using then make WhoNext.whoNext[1] = 1(my turn) and rest all to 0.

If Thread 1 is done and Thread 2 should be executed..... say
WhoNext.whoNext[1] = 0(Not My turn)
WhoNext.whoNext[2] = 1(My Turn)

Say For Example Thread 1 is supposed to run but do not get CPU time then as its not other turn to run their job they should just say
Thread.yield();

:-)
0
 
sciuriwareCommented:
No, just call:

      thread1.run();
      thread2.run();
.....
;JOOP!
0
 
ThummalaRaghuveerCommented:
Then you are not using the concept of Threads all you are doing is making some function calls.....

which would be executing sequentially........
0
 
sciuriwareCommented:
That's exactly right: threads in a sequence ARE NOT THREADS ANYMORE!

;JOOP!
0
 
sunny012097Author Commented:
i am talking about squentially runing threads like;

              thread 1
              thread 2
              thread 3
              thread 1
              thread 2
              ...
0
 
sciuriwareCommented:
Threads are subprocesses that run concurrently.
If you want it like you describe, you don't need a single thread, unless you want to run them
concurrently to your main.
Then you only need ONE thread that calls these 3 procedures in sequence.
;JOOP!
0
 
ThummalaRaghuveerCommented:
yaaa JOOP you were right
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.