#ThreadLocal import threading #创建全局ThreadLocal loacl_school = threading.local() class Student(): def __init__(self,name): self.name = name def process_student(name): std = Student(name) #每一次访问都会创建新的student loacl_school.student = std do_task_1() do_ta…
一.使用过滤器实现全站压缩 1.目标:对网站的所有JSP页面进行页面压缩,减少用户流量的使用.但是对图片和视频不进行压缩,因为图片和视频的压缩率很小,而且处理所需要的服务器资源很大. 2.实现原理: (1)使用GZIPOutputStream工具对数据进行压缩,中间借助了ByteArrayOutputStream类进行结果的存储. (2)使用过滤器对浏览器请求进行拦截,通过自定义HttpServletResponse类(使用包装模式),重写getWriter方法,使得写出的目的地转变成ByteA…
ThreadLocal解决什么问题 由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >,为表述方便,后文用 变量 代表 ThreadLocal 本身,而用 实例 代表具体类型(如 StringBuidler )的实例. 不恰当的理解写这篇文章的一个原因在于,网上很多博客关于 ThreadLocal 的适用场景以及解决的问题,描述的并不清楚,甚至是错的.下面是常见的对于 ThreadLocal的介绍 ThreadLocal为解决多线程程序的并发问…
前一段时间工作比较闲,每天没有代码敲的日子有点无聊,于是为了保证自己的编程逻辑力的日常清醒,故百度了一些经典的java算法,然后自己思考编程解决问题,虽然那些东西比较基础了,但是有些题目小编看到了也是要思考一段时间的,可能网上也有各色各异的解决代码,但是本章的解决代码却是独一份的,包含了小编的思想在里面,废话不多说了,上题目上代码. 代码请看下方: package com.zaevn.testone;import org.junit.Test;import java.util.*;/** * 经…
ThreadLocal 翻译成中文是线程本地变量的意思,也就是说它是线程中的私有变量,每个线程只能操作自己的私有变量,所以不会造成线程不安全的问题. ​ 线程不安全是指,多个线程在同一时刻对同一个全局变量做写操作时(读操作不会涉及线程不安全问题),如果执行的结果和我们预期的结果不一致就称之为线程不安全,反之,则称为线程安全. 在 Java 语言中解决线程不安全的问题通常有两种手段: 使用锁(使用 synchronized 或 Lock): 使用 ThreadLocal. 锁的实现方案是在多线程写…
需要解决的问题 在做WEB系统开发时,为了提高性能会利用浏览器的缓存功能,其实即使不显式的申明缓存,现代的浏览器都会对静态文件(js.css.图片之类)缓存.但也正因为这个问题导致一个问题,就是资源的缓存逻辑有时出现问题后服务器的最新版本文件无法更新客户端的缓存. 这个问题会给用户产生许多的困扰,当然首先是测试人员会很头痛,一些看起来没有修复的bug为什么开发要说做好了?这种时候我会无奈的说:ctrl+f5刷新一下.但这毕竟不是解决问题的方法. 思路与方法考虑 思路 之前没有着手处理过这样的问题…
BeginInvoke与EndInvoke方法解决多线程接收委托返回值问题 原文:http://www.sufeinet.com/thread-3707-1-1.html      大家可以先看看我上次写的文章 http://www.sufeinet.com/thread-3556-1-1.html 在这个例子中只是使用委托,在子线程中设置主线程的数据,而没有说明怎么样取返回值, 当今天有一个用户在问这个问题时我感觉应该写一下了 其实这个很简单先看下面界面 这是怎么实现的呢其实 很简单 第一步定…
我们如果这样写代码虽然可以实现头部二级分类的显示,但是如果再别的控制器下那么会出现显示不了.. 如果再加多一段一样的代码也可以实现出一样的效果: 但是这样会导致代码冗余现象,所以我们为了解决这个问题,可以通过一个中间层来处理,所以我们创建一个CommonController.class.php的控制器来实现解决代码冗余的一部分问题: <?php namespace Home\Controller; use Think\Controller; class CommonController exte…
在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多.在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样.没有办法,只有在后面的版本中去修改了,但是要改的话,需要知道是为什么.所以查了很多资料,终于搞懂了这个问题,并且总结了几种方法. 造成边框变粗的原因 其实这个原因很简单,因为css中的1px并不等于移动设备的1px,这些由于不同的手机有不同的像素密度.在window对象中有一个devicePixe…
前言 if...else 是所有高级编程语言都有的必备功能.但现实中的代码往往存在着过多的 if...else.虽然 if...else 是必须的,但滥用 if...else 会对代码的可读性.可维护性造成很大伤害,进而危害到整个软件系统.现在软件开发领域出现了很多新技术.新概念,但 if...else 这种基本的程序形式并没有发生太大变化.使用好 if...else 不仅对于现在,而且对于将来,都是十分有意义的.今天我们就来看看如何“干掉”代码中的 if...else,还代码以清爽. 问题一:…