多线程
猿来是U_U
代码是程序员思维智慧的结晶
展开
-
java web工程web.xml配置详解
Web.xml详解: 1.web.xml加载过程(步骤) 首先简单讲一下,web.xml的加载过程。当启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。 1. 启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点: <listener></...转载 2018-09-06 11:20:01 · 30177 阅读 · 5 评论 -
java-- 线程池
1、概述 从本文开始,我将用两篇文章的篇幅,为各位读者呈现JAVA中原生的线程池技术。第一篇文章,我将讲解JAVA原生线程池的基本使用,并由此延伸出JAVA中和线程管理相关的类结构体系,然后我们详细描述JAVA原生线程池的结构和工作方式;第二篇文章,我们将继续深入,讲解JAVA原生线程池的高级特性,包括Thread工厂、队列、拒绝原则、钩子和相关工具类。 如果您是JAVA语言的初学者,请从本篇...转载 2018-05-13 21:04:10 · 817 阅读 · 1 评论 -
java---线程(三)---几种状态转换
线程在一定条件下,状态会发生变化。线程一共有以下几种状态: 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。 3、运行状态(Running):就绪状态的线程获取了C...转载 2018-05-06 08:34:29 · 192 阅读 · 1 评论 -
高并发详解(一)
高并发 高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝。 高并发会来带的后果 服务端: 导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样...转载 2018-05-08 07:40:46 · 26486 阅读 · 3 评论 -
高并发解决方案--页面静态化
一、什么是页面静态化: 简 单的说,我们如果访问一个链接 ,服务器对应的模块会处理这个请求,转到对应的jsp界面,最后生成我们想要看到的数据。这其中的缺点是显而易见的:因为每次请求服务器都会进行处理,如 果有太多的高并发请求,那么就会加重应用服务器的压力,弄不好就把服务器 搞down 掉了。那么如何去避免呢?如果我们把对 test.do 请求后的结果保存成一个 html 文件,然后每次用户都去访...转载 2018-05-06 07:50:40 · 3949 阅读 · 1 评论 -
高并发解决方案--负载均衡
1,什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。 那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。 下面详...转载 2018-05-06 07:50:51 · 285 阅读 · 0 评论 -
java-- 线程(一):讲解
(转载注明来源:http://blog.csdn.net/yinwenjie) 1、JAVA中线程的状态 1-1、#对象锁 在JAVA中每一个对象都有一把‘锁’,这个‘锁’可以是开放状态;也可以由某一个线程(或者多个线程)持有‘钥匙’;一旦在系统中某个对象的‘锁’存在至少一把‘钥匙’,那么任何线程操作这个对象,都必须验证是否有‘钥匙’,如果没有则会报IllegalMonitorS...转载 2018-05-06 08:14:46 · 162 阅读 · 0 评论 -
Java---线程(二)-实例解析
Java多线程实例 3种实现方法Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start方法。 2.实现Runnable接口,并实现该接口的run()方法.创建一个Thread对象,用实现的Runnable接口的对象作为参数实例化Thread对象...转载 2018-05-06 08:31:55 · 143 阅读 · 0 评论 -
java中的synchronized(同步代码块和同步方法的区别)
问题的由来: 看到这样一个面试题: //下列两个方法有什么区别 public synchronized void method1(){} public void method2(){ synchronized (obj){} } synchronized用于解决同步问题,当有多条线程同时访问共享数据时,如果不进行同步,就会发生错误,java提供的解决方案是:只要将操作共享数据的语...转载 2018-05-06 14:08:17 · 885 阅读 · 0 评论 -
Java并发编程:深入剖析ThreadLocal
转自:https://www.cnblogs.com/dolphin0520/p/3920407.html点击打开链接 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本...转载 2018-06-29 17:46:15 · 131 阅读 · 0 评论 -
线程中的wait() 与 锁的关系
我们先看一段代码: /** * 计算输出其他线程锁计算的数据 * */ public class ThreadA { public static void main(String[] args) throws InterruptedException{ ThreadB b = new ThreadB(); //启动计算线程 b.st...转载 2018-08-17 14:31:46 · 3352 阅读 · 4 评论 -
线程本地变量ThreadLocal
一、本地线程变量使用场景 并发应用的一个关键地方就是共享数据。如果你创建一个类对象,实现Runnable接口,然后多个Thread对象使用同样的Runnable对象,全部的线程都共享同样的属性。这意味着,如果你在一个线程里改变一个属性,全部的线程都会受到这个改变的影响。 有时,你希望程序里的各个线程的属性不会被共享。 Java 并发 API提供了一个很清楚的机制叫本地线程变...转载 2018-06-26 18:33:52 · 263 阅读 · 0 评论