搜索到与相关的文章
编程技术

同步基元概述

.NETFramework提供了一系列同步基元来控制线程交互并避免争用条件。这可大致分为三个类别:锁定、通知和联锁操作。上述类别的定义并非是绝对的:有些同步机制具有多个类别的特征;一次释放一个线程的事件从功能上来说类似于锁;任何锁的释放都可看作一个信号;而联锁操作可用于构造锁。但是,这些类别仍然是有用的。记住线程同步是协作这一点非常重要。只要有一个线程避开同步机制直接访问受保护的资源,该同步机制就不是有效的。本概述包含以下几节:锁定通知轻量同步类型Spin

系统 2019-08-29 22:23:02 2094

编程技术

设计模式之--命令模式

命令模式的意图一是将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;二是对请求排队或记录请求日志,以及支持可撤消的操作。简略图如下:命令模式通过对命令的封装,将命令的请求(调用者Invoker)和执行(接收者Receiver)进行了责任分离,委派给不同的对象,不仅使得调用者和执行者之间实现了解耦(命令的请求方就不需要知道接收方的接口,也不需要知道命令是如何执行的具体情况),还使得可以记录命令的执行记录,添加执行日志,使得命令的控制、执行、取

系统 2019-08-29 22:14:04 2094

编程技术

【排序结构4】 归并排序

归并排序O(N*logN)是另一种效率很高的排序方法。"归并"的含义就是将两个或两个以上的有序表组合成一个有序表。加入两个有序表的长度分别为m、n,则一次归并的时间复杂度为O(m+n)。我们可以用"归并"的思想来实现排序。假如待排序列含有n个关键字,则可看成是n个有序的子序列,每个序列长度为1,然后两两归并,得到[n/2]个长度为2或1的子序列,在两两归并....,知道得到一个长度为n的有序序列为止。这就是2-路归并算法。下图就是2-路归并排序的一个例子:

系统 2019-08-29 21:59:43 2094

编程技术

JVM垃圾回收机制总结(3) :按代垃圾收集器

全文转载:http://pengjiaheng.iteye.com/blog/524024作者:和你在一起[fromJavaEye]为什么要分代分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比

系统 2019-08-29 21:59:34 2094

编程技术

AngularJS与RequireJS集成

RequireJS允许你定义和管理JS文件之间的依赖关系,把这些工作变成了一个简单的构建过程。利用这些异步加载管理工具,可以保证在代码执行之前所有依赖的东西就已经被加载好了——专注于开发实际的应用功能从来没有如此简单过。AngularJS能够很好地与RequireJS(http://www.requirejs.org/)配合使用,这使得我们可以同时拥有两种组件的优点。下面通过配置AngularJS官方的AngularSeed实例,来看一下AngularJS

系统 2019-08-29 21:55:37 2094

编程技术

XSS 前端防火墙 —— 天衣无缝的防护

上一篇讲解了钩子程序的攻防实战,并实现了一套对框架页的监控方案,将防护作用到所有子页面。到目前为止,我们防护的深度已经差不多,但广度还有所欠缺。例如,我们的属性钩子只考虑了setAttribute,却忽视还有类似的setAttributeNode。尽管从来不用这方法,但并不意味人家不能使用。例如,创建元素通常都是createElement,事实上createElementNS同样也可以。甚至还可以利用现成的元素cloneNode,也能达到目的。因此,这些都

系统 2019-08-12 09:30:32 2094

编程技术

jFreeChart(动态web应用)

JFreeChart1.0.2的动态应用,根据数据库中的数据生成饼图:(部分来自网页)本文用的是JFreeChart1.0.2(根据版本不同需要根据类修改部分代码)下载:http://www.jfree.org/jfreechart/index.html下载后解压jfreechart-1.0.2.zip,会发现在lib下有几个jar文件,本文只介绍生成饼图的例子:1,首先将lib下的jcommon-1.0.5.jar和jfreechart-1.0.2.ja

系统 2019-08-12 09:30:12 2094

各行各业

关于github的使用心得

https://github.com/JavaLizheng/testgit常用命令:gitconfig:配置gitgitadd:更新workingdirectory中的文件至stagingarea。gitadd.更新所有的文件gitcommit:提交stagingarea中的文件至gitrepository中。gitcommit-m'message'gitstatus:查看状态gitdiff:查看改动情况gitremote:查看远端服务器别名,加上-v显

系统 2019-08-12 09:27:16 2094

各行各业

HDOJ-1014 Uniform Generator

http://acm.hdu.edu.cn/showproblem.php?pid=1014给出式子seed(x+1)=[seed(x)+STEP]%MODseed初始为0,给出STEP和MOD的值问seed能否取到0~(MOD-1)之间的所有值简单模拟#includeintmain(){intStep,Mod,i,Seed,Flag[100005];while(scanf("%d%d",&Step,&Mod)!=EOF){for(i=0

系统 2019-08-12 09:26:57 2094

各行各业

NDO 简介

Ndo-DOTNETDataAccessObject的简称,是一个轻量型的数据访问组件,配置简单,支持多数据库,内部对ADO.Net进行了良好的封装,使开发者不需要关心和了解ADO.Net的底层细节,不需要根据不同的数据库专门写一套DAO。该组件内建了Statement和Procedure对象专门针对于Sql语句和存储过程处理的对象(类似于JDBCAPI),Statement和Procedure比DAAB提供了更多的API,使开发者使用起来更方便和更快捷。

系统 2019-08-12 09:26:48 2094