Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Paul Clapham
  • Bear Bibeault
  • Jeanne Boyarsky
Sheriffs:
  • Ron McLeod
  • Tim Cooke
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Jj Roberts
  • Stephan van Hulst
  • Carey Brown
Bartenders:
  • salvin francis
  • Scott Selikoff
  • fred rosenberger

Thread doubt

 
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator



The result I got is as follows:

Pr of t1 = 5,Pr of t2 = 5,Pr of t3 = 5
Pr of t1 = 3,Pr of t2 = 6,Pr of t3 = 7
inside no args run
Run by one
�.
Run by one
Inside if block
inside no args run
Run by three
�.
Run by three
inside no args run
Run by two
�.
Run by two
Final run by main


Though t3 has max priority, t1 is run first.
value for NORM_PRORITY is 5, but I haven't given any Thread a priority of 5. Then how can the if loop execute?

Can anybody pls explain
 
Ranch Hand
Posts: 424
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


I haven't given any Thread a priority of 5. Then how can the if loop execute?
if(Thread.currentThread().getPriority() == Thread.NORM_PRIORITY){


You are checking on the currentThread which is the "main Thread" which has a default priority of NORM_PRIORITY
 
ram shah
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank for your comments Ahmed...but, I have few more doubts

(1) how thread "one" is executing before thread "three" when priority of thread "three" is greatre than priority of thread "one".

(2) If I set the priorities as below,
t1.setPriority(9)
t2.setPriority(5)
t3.setPriority(5)
How can I modify the if statement so that if the priority of the thread is 5, it yields to the other thread with same priority.
 
author
Posts: 23883
142
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

(1) how thread "one" is executing before thread "three" when priority of thread "three" is greatre than priority of thread "one".



Threads actually takes time to start. I can't tell without running your code, but I would say thread one is running because thread three hasn't started yet.

How can I modify the if statement so that if the priority of the thread is 5, it yields to the other thread with same priority.



The way you coded it, only the main thread makes the check. You have to code it so that the threads that you want to check and yield, actually does the check and yield.

Henry
 
I can't take it! You are too smart for me! Here is the tiny ad:
Thread Boost feature
https://coderanch.com/t/674455/Thread-Boost-feature
reply
    Bookmark Topic Watch Topic
  • New Topic