LinkNemo

  • Nemo

    线程池的使用(ThreadPoolExecutor详解)(转载)

    为什么要使用线程池?线程是一个操作系统概念。操作系统负责这个线程的创建、挂起、运行、阻塞和终结操作。而操作系统创建线程、切换线程状态、终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情。 另一方面,大多数实际场景中是这样的:处理某一次请求的时间是非常短暂的,但是请求数量是巨大的。这种技术背景下,如果我们为每一个请求都单独创建一个线程,那么物理机的所有资源基本上都被操作系统创建线程、切换线程状态、销毁线程这些操作所占用,用于业务请求处理的资源反而减少了。所以最理想的处理方式是,将处理请求的线程数量控制在一个范围,既保证后续的请求不会等待太长时间,又保证物理机将足够的资源用于......
    2018/02/06 17:00:43发表 160赏阅 0点评
  • Nemo

    java线程池简单实现

    importjava.util.LinkedList;importjava.util.List;/***线程池类,线程管理器:创建线程,执行任务,销毁线程,获取线程基本信息*CreatedbyNemoon2018/2/6.*/publicclassThreadPool{//线程池中默认线程的个数为5privatestaticintworkerNum=5;//工作线程privateWorkThread[]workThrads;//未处理的任务privatestaticvolatileintfinishedTask=0;//任务队列,作为一个缓冲,List线程不安全privateList<R......
    2018/02/06 11:04:28发表 141赏阅 0点评
  • 随遇而安

    高性能线程间队列 DISRUPTOR 简介(转载)

    原文出处:foreverdisruptor简介背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。与Kafka(ApacheKafka)、RabbitMQ(RabbitMQ)用于服务间的消息队列不同,disruptor一般用于线程间消息的传递。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家MartinFowler专门撰写长文介绍TheLMAXArchitecture。同年它还获得了Oracle官方的Duke大奖。其他关于disruptor的背景就不在此多......
    2018/01/08 19:29:24发表 219赏阅 0点评
  • Nemo

    关于一个没能挤爆的CPU...

    有天有个朋友问了一个问题:如何才能挤爆一个CPU.然后...自然而然的建议他线程套开线程。然后他尝试中,本机(Windows)几分钟就爆了。但是服务器(Linux)开了好一阵子仍然没有反应,并且cpu占用貌似也没啥反应...一直未能理解,直到看到下面这段:操作系统中,CPU竞争有很多种策略。Unix系统使用的是时间片算法,而Windows则属于抢占式的。在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序......
    2016/09/26 23:12:51发表 405赏阅 0点评

最新点击

热门人物

热门标签

回到顶部