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

具有四核处理器的笔记本电脑中的Java多线程

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

具有四核处理器的笔记本电脑中的Java多线程

即使是单个CPU,也可以从松散的意义上“同时完成多项任务”,但是它们并不是真正并行的。您可以启动100个线程在单个内核上运行,它们将获得时间片,在每个时间片中它们可以运行一些指令,从而给人一种印象,即它们都在同一时间执行。

线程一词通常涵盖三个抽象层:

  1. 用户线程 是由应用程序启动的线程,并且被N:M映射到:
  2. 内核线程 (由操作系统管理的线程)将N:M映射到:
  3. 硬件线程 ,这是可用的实际物理资源。

Java线程是用户线程。CPU中的4个核心被视为硬件线程。由于跨层的映射是N:M,因此可以看到可以将多个用户线程映射到较少数量的硬件线程。

话虽如此,通常有两类线程活动,每种都有自己的怪癖:

  1. I / O线程 :这些线程大部分时间都在等待从流进行的读/写操作,并且在此期间被阻塞(它们没有计划执行,直到发生事件将其唤醒)。CPU上有指示灯,即使在单个内核上,它们中的许多也可以同时运行。
  2. 计算线程 :这些线程进行大量的数字运算,并最大程度地使用CPU。通常启动的线程数多于(可用内核数的2倍)会降低性能,因为CPU的功能单元数量有限:ALU,FPU等。

上面的第二类线程使您真正看到了好处,或者在四核CPU上运行了多线程Java程序。这是一个简单的程序示例,该程序先按顺序执行1.000.000.000数字的平方,然后使用具有4个线程的线程池并行执行:

import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;class ThreadTask implements Runnable {    private int total = 0;    public ThreadTask(int total) {        this.total = total;    }    @Override    public void run() {        int value = 0;        for(int i = 0; i < total; i++) { value = i * i;        }    }       }public class Test {    public static void main(String[] args) throws InterruptedException {        int total = 1000000000;        long start = System.currentTimeMillis();        long value = 0;        for(int i = 0; i < total; i++) { value = i * i;        }    long stop = System.currentTimeMillis();        System.out.println((stop - start) + " ms");        ExecutorService exec = Executors.newFixedThreadPool(4);        start = System.currentTimeMillis();        for(int i = 0; i < 4; i++) { exec.submit(new ThreadTask(total / 4));        }        exec.shutdown();        exec.awaitTermination(10, TimeUnit.SECONDS);        stop = System.currentTimeMillis();        System.out.println((stop - start) + " ms");         }}

total
如果运行速度太快,请随意调整其值。现在,我正在与Intel Atom一起从事上网本的开发,因此速度并不是很快。



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

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

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