At any time running thread can't have less priority than the thread which are in runnable state
Not true... threads are subjected to the underlying threading model. For example, windows will try hard to give each thread a chance to execute that lower priority threads will run, even if a higher priority thread is in a runnable state.
in multithreading nothing is guaranteed except that all threads will get a chance to run
Not true... it is possible to starve a thread via using priority levels, under certain operating systems.
Henry