线程安全问题 | 学习笔记

简介: 快速学习线程安全问题,介绍了线程安全问题系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门线程安全问题】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7292


struts2的线程安全问题

 

内容介绍:

一、什么是线程安全

二、辩证地看待线程安全

 

一、 什么是线程安全

1、线程安全的概念

(1)在一个进程中有多个线程并发执行,每个线程执行过程中,变量值是相同的,执行结果也是相同的

线程安全的弱国执行结果不同,那线程就是不安全的。

(2)是否单立就决定是否线程安全

例如:

Servlet 中:

package cn.sxt.servlet;

import java.io.IOException;

public class UserServlet extends HttpServlet{

private int count=e

@override

protected void service(HttpServletRequest req,HttpServletResponse resp)

throws ServletException,IOException {

count++;

}

}

线程是不安全的;

package cn.sxt.servlet

import java.io.IOException;

public class UserServlet extends HttpServlet{

@override

protected void service(HttpServletRequest req,HttpServletResponse resp)

throws servletException,IOException {

int count=0

count++

}

}

线程是安全的。

2、Struts2线程安全吗

每次请求都会重新创建新的 action 对象,所以线程安全。

由于 action 对象struts2,反射生成的,所以要求 Action 类要有一个公共的无参构造方法。

 

二、辩证地看待线程安全

线程安全不一定好,要辩证地去看待

好的方面:

有许多并发量的时候,就不会出问题;

不好的方面:

每次使用都需要新创建对象,消耗大量时间和内存。

不同的应用要选择不同的框架去做。

相关文章
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
358 0
|
编解码 数据安全/隐私保护 计算机视觉
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
如何使用OpenCV进行同步和异步操作来打开海康摄像头,并提供了相关的代码示例。
860 1
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
多线程学习笔记
这篇文章是多线程学习笔记,涵盖了线程与进程的概念、多线程实现方式、线程状态、线程同步与不安全示例、死锁问题以及生产者与消费者问题等多线程编程的关键知识点。
多线程学习笔记
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线程配置
前端学习笔记202305学习笔记第二十三天-地图单线程配置
223 0
前端学习笔记202305学习笔记第二十三天-地图单线程配置
FFmpeg学习笔记(二):多线程rtsp推流和ffplay拉流操作,并储存为多路avi格式的视频
这篇博客主要介绍了如何使用FFmpeg进行多线程RTSP推流和ffplay拉流操作,以及如何将视频流保存为多路AVI格式的视频文件。
1400 0
|
Java
java202303java学习笔记第三十九天自定义线程池详解1
java202303java学习笔记第三十九天自定义线程池详解1
101 0
|
NoSQL 网络协议 关系型数据库
redis-学习笔记(redis 单线程模型)
redis-学习笔记(redis 单线程模型)
134 3
|
安全 Java 编译器
多线程 (下) - 学习笔记2
多线程 (下) - 学习笔记
146 1
|
存储 算法 Java
多线程 (下) - 学习笔记1
多线程 (下) - 学习笔记
125 1
|
设计模式 安全 NoSQL
多线程 (上) - 学习笔记2
多线程 (上) - 学习笔记
137 1