美文网首页
web开发中的线程问题

web开发中的线程问题

作者: mikewt | 来源:发表于2018-01-27 21:16 被阅读0次

1)线程安全问题
 很多做web开发的同学对线程安全的问题根本提不起兴趣,原因是根本用不到,也不用考虑,只是在换工作面试的时候,会去看看。日常我们使用mvc框架进行web项目开发,如spring mvc struts,可以看到基于http的web开发本身就是多线程问题,只不过Tomcat或者spring mvc已经帮你处理好了,你需要在里面写业务就行了。
 Tomcat线程模型分为bio、nio、apr三种类型,bio中会建立一个线程池,一个请求到来的时候,取出一个线程处理请求。NIO为一个基于缓冲区、并能提供非阻塞I/O操作,不要为每个请求建立一个线程,可以实现线程的复用(暂时这么理解)。第三种不做讨论。
 servlet是线程不安全的,servlet实例是单例的,以便实现复用,节省内存。spring mvc使用servlet拦截请求,这是单例的。
以上问题你都不用考虑,spring、tomcat已经帮你处理好了,需要注意的是spring mvc各个组件controller、service、dao默认都是单例的,所以web开发中是会出现线程安全问题的,但一般可以使用ThreadLocal和不使用属性变量解决。
 TheadLocal对于线程整个生命周期是线程安全的,你可以向里面存数据,且这个数据不会被其他线程修改。spring中对事务的管理就是通过ThreadLocal实现的。具体可以看这篇博文。https://www.cnblogs.com/fishisnow/p/6396989.html。尽量不用使用类属性变量,因为JVM堆区域是不同线程共享的,而栈内存不同线程是隔离的。如果非要使用,一定要使用线程安全的问题,如使用线程安全的集合和map,否则可能会出现线程安全问题。
2)使用线程
 web开发中很少使用线程来提高并发速度,原因是业务比较简单,大部分都是crud,性能瓶颈往往不在应用,而在于数据库,解决问题的核心还是依赖于SQL的优化。

相关文章

  • web开发中的线程问题

    1)线程安全问题 很多做web开发的同学对线程安全的问题根本提不起兴趣,原因是根本用不到,也不用考虑,只是在换工作...

  • centos7安装Rails

    Rails 是使用 Ruby 语言编写的 Web 应用开发框架,目的是通过解决快速开发中的共通问题,简化 Web ...

  • web开发中碰到的问题

    一、input 输入框过滤 emoji 表情 JS 最初设计的时候,基于 UCS-2 编码,只支持 两个字节(16...

  • 多线程 以及 线程安全

    移动端开发过程中,会出现 进程 和 线程的概念,以及多线程中 线程安全 的问题。 进程 和 线程 进程: APP...

  • Java中如何正确的创建线程数量

    问题 java开发中,线程数通常定义为:线程数 = Runtime.getRuntime().availableP...

  • go 基础 WebAssembly

    Web开发中为什么需要 WebAssembly ,以及在实际开发中如何使用 WebAssembly?带着这些问题开...

  • java基础-day50-Spring

    一、引言 1.1 原生web开发中存在哪些问题? 传统Web开发存在硬编码所造成的过度程序耦合(例如:Servic...

  • JavaScript比较零碎的几个点 - 事件模型.

    事件在web开发中太常见了。web浏览器在主线程主队列任务执行完成之后。基本就进入到了到了eventLoop等待事...

  • 离程序员又近了一步:详细记录Spring基本开发流程

    一、Spring概述 1.1 Web开发中的一些问题 传统Web开发存在硬编码所造成的过度程序耦合(例如:Serv...

  • Web开发中的安全问题

    网站安全是构建网站时必须要考虑的一个因素,网站安全的重点在于服务器的安全配置管理以及程序脚本的完善性。当然如果服务...

网友评论

      本文标题:web开发中的线程问题

      本文链接:https://www.haomeiwen.com/subject/avxoaxtx.html