Java多线程____Servlet线程安全问题
来源:互联网 发布:各种网络协议 编辑:程序博客网 时间:2024/05/17 13:42
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。
或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。
线程安全问题都是由全局变量及静态变量引起的。
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。
//==============实例====================\\
package com.test;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet(name="TestServlet",urlPatterns={"/*"})public class TestServlet extends HttpServlet{private String clientName;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取客户端名称clientName=req.getParameter("clientName");try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}resp.setContentType("text/html; charset=utf-8");resp.getWriter().write("客户端请求类型:"+clientName);}}
TO:解决方案 加同步块 最小粒度
阅读全文
0 0
- Java多线程____Servlet线程安全问题
- Java 多线程 线程安全问题
- Java多线程____线程安全问题
- java进程、线程、多线程以及线程安全问题
- java多线程之多线程的线程安全问题
- Java SE -- 多线程 线程安全问题解决
- Java多线程设计(三)线程安全问题
- java多线程学习7-线程安全问题
- java多线程学习之线程安全问题
- java多线程高并发线程安全问题
- 多线程:线程的安全问题
- 一心多用多线程-线程安全问题
- Java多线程技术初识——3. 线程安全问题
- 黑马程序员——Java多线程之线程安全问题
- java多线程详解五 单例的线程安全问题
- (47)Java学习笔记——多线程 / 线程的安全问题
- Java多线程模拟售票程序,及线程安全问题
- java多线程学习之通过synchronized加锁解决线程安全问题
- Ansible安装与配置(自动化运维管理工具)
- <Brain> The Anatomy of Movement
- 【性能】rabbitMQ压测
- Hive中压缩设置 和 Hive文件存储格式及使用
- 转盘抽奖Java后端代码
- Java多线程____Servlet线程安全问题
- Neo4j 第五篇:批量更新数据
- 深入java集合系列:java8 LinkedList详解
- 1.创建一个Rectangle类,添加width和height两个成员变量。 2.在Rectangle中添加两种方法分别计算矩形的周长和面积 3.编程利用Rectangle输出一个矩形的周
- 【bzoj2501】[usaco2010 Oct]Soda Machine
- Android中自定义水平的ProgressBar
- mysql查询表字段默认值
- 深度学习,自然语言处理及其表达
- java对象及引用