请选择 进入手机版 | 继续访问电脑版

JAVA中级教程--java多线程与使用场景

[复制链接]
发表于 2018-2-7 11:02:45 |显示全部楼层
  

在早期的操作系统中我们的电脑都是单任务执行的,所谓的单任务就是在你打开QQ聊天的时候你不能同时开启迅雷下载视频或者是打开爱奇艺 百度什么的进行搜索。后来我们的电脑可以进行多任务执行了 也就是说我们可以在聊天的同时看电影。

但是我们在使用迅雷或者是百度网盘下载电影的时候我们每一次只能下载一个视频或者文件 这显然是非常不方便的。所以多线程的出现就解决了这些问题。

  Java多线程的使用在Java开发中占据了一些不可低估的分量。用好了万事顺利。

      多进程
           
      多线程



多线程使用的主要目的在于:

1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。

2、伸缩性:也就是说,你可以通过增加CPU核数来提升性能。如果是单线程,那程序执行到死也就利用了单核,肯定没办法通过增加CPU核数来提升性能。

鉴于你是做WEB的,第1点可能你几乎不涉及。那这里我就讲第二点吧。

--举个简单的例子:
假设有个请求,这个请求服务端的处理需要执行3个很缓慢的IO操作(比如数据库查询或文件查询),那么正常的顺序可能是(括号里面代表执行时间):
a、读取文件1  (10ms)
b、处理1的数据(1ms)
c、读取文件2  (10ms)
d、处理2的数据(1ms)
e、读取文件3  (10ms)
f、处理3的数据(1ms)
g、整合1、2、3的数据结果 (1ms)
单线程总共就需要34ms。
那如果你在这个请求内,把ab、cd、ef分别分给3个线程去做,就只需要12ms了。
https://www.cnblogs.com/kenshinobiy/p/4671314.html



Java中的多线程实现

    在Java中,实现多线程有两种方式。

    1. 继承Thread类创建线程类
   
    2.实现Runnable接口创建线程类



2.


负载均衡
            Nginx+Tomcat负载均衡详述与实战 地址  地址2

END




您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|沙漏笔记

GMT+8, 2019-10-24 10:47 , Processed in 0.108314 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Copyright © 2015-2018 xuejava网 / 鲁ICP备17054568号-1
回顶部