Java中的线程调度

关于线程的调度

 1.  常见的线程调度模拟有哪些?

     抢占式调度模拟:

       那个线程的优先级比较高,抢到的CPU时间片的概率就高一些/多一些。

       java采用的就是抢占式调度模型

    均分式调度模型:

      平均分配CPU时间片,每个线程占有的CPU时间片时间长度一样。

      平均分配,一切平等。

      有一些编程语言,线程调度模型采用的是这种方式。

 2.java中提供了哪些方法是和线程调度有关系的?

    实例方法:

       void setPriority(int newPriority)设置线程的优先级

       int getPriority()获取线程优先级

       最低优先级1

       默认优先级是5

       最高优先级是10

       优先级比较高的获取CPU时间片可能会多一些(但也不完全是,大概率是多的)

    静态方法:

       static void yield() 让位方法

       暂停当前正在执行的线程对象,并执行其他线程

       yield()方法不是阻塞方法。让当前线程让位,让给其他线程使用。

       yield()方法的执行会让当前线程从”运行状态“回到”就绪状态“

       注意:在回到就绪之后,有可能还会再次抢到。

   实例方法:

      void join()

      合并线程

      class MyThread1 extends Thread{

         public void doSome(){

            MyThread2 t = new MyThread2();

            t.join(); //当前线程进入阻塞,t线程执行,直到t线程结束。当前线程才可以继续。

         }

      }

      class MyThread2 extends Thread{

      }

你可能感兴趣的:(java,开发语言)