zoukankan      html  css  js  c++  java
  • 多线程含义及使用

    多线程含义

    最终目的解决等待问题。

    • 通过并行计算提高程序执行性能
    • 需要等待网络、 I/O响应导致耗费大量的执行时间,可以采用异步线程的方式来减少阻塞

    tomcat以前的io模型

    • 客户端阻塞

    如果客户端只有一个线程,这个线程发起读取文件的操作必须等待IO 流返回,线程(客户端)才能做其他的事

    • 线程级别阻塞 BIO

    客户端一个线程情况下,一个线程导致整个客户端阻塞。那么我们可以使用多线程,一部分线程在等待 IO 操作返回其他线程可以继续做其他的事。此时从客户端角度来说,客户端没有闲着。

    多线程应用

    在java中,有多种方式

    继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现带返回结果的多线程。

    • 继承Thread类

      public class MyThread extends Thread{
          public void run(){
              System.out.println("MyThread.run()");
          }
      }
      public static void main(String[] args){
          MyThread myThread = new MyThread();
          myThread.start();
      }
      
    • 实现Runable接口

      public class MyThread implements Runnable {
      	public void run() {
      		System.out.println("MyThread.run()");
      	}
      }
      
    • 实现Callable接口通过FutureTask包装器来创建Thread线程

      public class CallableDemo implements Callable<String> {
          @Override
          public String call() throws Exception {
              int a = 1;
              int b = 2;
              System.out.println(a + b);
              return "执行结果" + (a + b);
          }
      
          public static void main(String[] args) throws ExecutionException, InterruptedException {
              ExecutorService executorService = Executors.newFixedThreadPool(1);
              CallableDemo callableDemo = new CallableDemo();
              Future<String> future = executorService.submit(callableDemo);
              System.out.println(future.get());
              executorService.shutdown();
          }
      }
      

    优雅处理线程

    zookeeper 源码: 通过阻塞队列以及多线程的方式,实现对请求的异步化处理,提升处理性能

    阻塞队列:LinkedBlockingQueue(无界阻塞队列)

  • 相关阅读:
    Shiro SessionContext和SessionKey的设计概念
    Shiro DefaultWebSessionManager的设计概念
    Shiro SessionDAO的设计概念
    Shiro DefaultSessionManager的设计概念
    Shiro 关于校验Session过期、有效性的设计概念
    Shiro AbstractValidatingSessionManager设计概念
    Windows 查看端口及杀掉进程
    Shiro Session及SessionManager的设计概念
    jQuery操作DOM节点
    jQuery动画效果
  • 原文地址:https://www.cnblogs.com/snail-gao/p/11739463.html
Copyright © 2011-2022 走看看