zoukankan      html  css  js  c++  java
  • java多线程

    传入的参数代表我们配置的线程数,是不是越多越好呢?肯定不是。因为我们在配置线程数的时候要充分考虑服务器的性能,线程配置的多,服务器的性能未必就优。通常,机器完成的计算是由线程数决定的,当线程数到达峰值,就无法在进行计算了。如果是耗CPU的业务逻辑(计算较多),线程数和核数一样就到达峰值了,如果是耗I/O的业务逻辑(操作数据库,文件上传、下载等),线程数越多一定意义上有助于提升性能。

      线程数大小的设定又一个公式决定:

    Y=N*((a+b)/a),其中,N:CPU核数,a:线程执行时程序的计算时间,b:线程执行时,程序的阻塞时间。有了这个公式后,线程池的线程数配置就会有约束了,我们可以根据机器的实际情况灵活配置。

    2.

    2) ThreadPool(线程池)+CountDownLatch(程序计数器)

      顾名思义,CountDownLatch为线程计数器,他的执行过程如下:首先,在主线程中调用await()方法,主线程阻塞,然后,将程序计数器作为参数传递给线程对象,最后,每个线程执行完任务后,调用countDown()方法表示完成任务。countDown()被执行多次后,主线程的await()会失效。实现过程如下:

  • 相关阅读:
    Maven项目多环境之间的配置文件的切换
    使用vue脚手架快速创建vue项目(入门)
    SpringAOP之使用切入点创建通知
    epoll的陷阱
    epoll-1
    openSUSE Leap 15格式化挂载新分区
    openSUSE Leap 15取消自动登录
    openSUSE Leap 15通过windows rdp访问
    openSUSE Leap 15安装打开ssh
    数组、函数与指针
  • 原文地址:https://www.cnblogs.com/panxuejun/p/8418352.html
Copyright © 2011-2022 走看看