Java线程

    xiaoxiao2023-11-13  102

    1.每个线程都有一个独立的程序计数器和方法调用栈。方法调用栈简称方法栈,用来跟踪线程运行中一系列的方法调用过程,栈中的元素称为栈帧。每当线程调用一个方法,就会向方法栈压入一个新帧,帧用来存储方法的参数、局部变量和运算过程中的临时数据。

    2.使一个线程停止运行的三种情况: 1)自己运行结束 2)因为某种原因而阻塞 3)另一个高优先级线程就绪

    3.wait()导致当前线程等待,直到其它线程调用notify()或者notifyAll() wait(long l)导致当前线程等待,直到其它线程调用notify()或者notifyAll(),或者等待的时间过完。

    4.sleep()使线程转入阻塞状态,而yield()使线程转入runnable状态。yield()会给相同优先级或更高的线程运行机会。如果当前没有存在相同优先级的线程,则yield()什么都不做。而sleep()不会考虑线程的优先级,会给其他线程运行的机会因此也会给相同或更低优先级线程运行的机会。

    最新回复(0)