工作中为什么要用多线程,它的好处,以及一个简单多线程实例。

来源:互联网 发布:java web开发教程视频 编辑:程序博客网 时间:2024/05/22 09:01

 

在一个高并发的网站中,多线程是必不可少的。下面先说一下多线程在程序中的作用

1、提高前端请求的响应速度。当我们执行一个比较耗时的方法时,http请求得不到响应甚至会超时,这时如果业务上允许数据的延迟,我们可以使用多线程来进行处理比较耗时的方法。这样前端发送了请求,后端令开启了一个线程去处理任务,就不会阻塞主线程了。


2、减清服务器的压力。包括我们的web容器,如tomcat、jetty等,还有数据库服务器等。因为我们使用了多线程,并且线程池大小有限制,如30,那么同时请求数据库的链接就限制为30了,也就是说能够同时执行方法的线程只有30个,其余的任务都放在我们线程的任务队列了,这样数据库就不会被突然上来的请求给压垮了。当然对于缓解数据库压力来说,更建议使用消息队列,使用消息队列我们可以攒数据进行批量提交,而仅仅使用多线程,则不好实现攒数据的过程。


3、提高处理能力,增加性能,充分利用服务器资源。如我们要将三个表里的数据加载到缓存,最简单的我们一个表开启一个线程,共用三个线程去加载缓存则比用一个线程去挨着遍历三个表的数据高效的多。



下面给出一个简单使用多线程实例


/** * Created by hcmony on 2017/8/31. */public class Test{   //多线程要执行的方法   public static void getInt(int i){      System.out.println(Thread.currentThread().getName()+"-"+i);   }   static  class ThreadTest{      public static void main(String[] args) throws Exception{         //开启一个新线程去做另外的事情,比如我们公司是通过api加载其它的数据。         new Thread(){            @Override            public void run() {               for (int i=0;i<100000;i++) {                  try {                     getInt(i);                  }catch (Exception e){                  }               }            }         }.start();         //单线程要执行的方法         for (int i=0;i<1000000;i++){            System.out.println(i);         }      }   }}



原创粉丝点击