栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

测试线程优先级。在某些情况下,低优先级线程为什么更快?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

测试线程优先级。在某些情况下,低优先级线程为什么更快?

你有两个问题。一个是线程需要花费一些时间才能启动,因此您可以通过顺序触发它们来给“低”一个不错的开始。另一个是线程优先级决定了在有处理器时间参数的情况下谁可以运行。有两个线程和8个有效的处理器内核,优先级并没有多大关系!这是一个固定的示例,该示例使用闩锁“同时”启动所有线程,并使用足够的线程来实际争夺资源,您可以看到优先级设置的效果。它给出了相当一致的结果。

static class Clicker implements Runnable{    BigInteger click = BigInteger.ZERO;    Thread t;    Clicker(int p){        t=new Thread(this);        t.setPriority(p);    }    public void run(){        try {        latch.await();        } catch(InterruptedException ie) {}        while(running) click = click.add(BigInteger.ONE);    }    public void start(){        t.start();    }}public static volatile boolean running = true;public static final CountDownLatch latch = new CountDownLatch(1);public static void main(String args[]){    Thread.currentThread().setPriority(Thread.MAX_PRIORITY);    List<Clicker> listLow = new ArrayList<Clicker>();    List<Clicker> listHigh = new ArrayList<Clicker>();    for (int i = 0; i < 16; i++) {        listHigh.add(new Clicker(Thread.NORM_PRIORITY+4));    }    for (int i = 0; i < 16; i++) {        listLow.add(new Clicker(Thread.NORM_PRIORITY-4));    }    for (Clicker clicker: listLow) {        clicker.start();    }    for (Clicker clicker: listHigh) {        clicker.start();    }    latch.countDown();    try {        Thread.sleep(5000);    } catch (InterruptedException e) {        e.printStackTrace();    }    running = false;    BigInteger lowTotal = BigInteger.ZERO;    BigInteger highTotal = BigInteger.ZERO;    try {        for (Clicker clicker: listLow) { clicker.t.join(); lowTotal = lowTotal.add(clicker.click);        }    for (Clicker clicker: listHigh) { clicker.t.join(); highTotal = highTotal.add(clicker.click);        }    } catch (InterruptedException e) {        e.printStackTrace();    }    System.out.println("LO: "+lowTotal);    System.out.println("HI: "+highTotal); }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/570917.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号