`
文章列表
摘自infoQ:http://www.infoq.com/cn/articles/java-threadPool?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk 1、合理使用线程池的好处: 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池 ...
volatile变量自身具有下列特性: 可见性。对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。 原子性:对任意单个volatile变量的读/写具有原子性,但类似于volatile++这种复合操作不具有原子性。 volatile写-读建立的happens before关系 上面讲的是volatile变量自身的特性,对程序员来说,volatile对线程的内存可见性的影响比volatile自身的特性更为重要,也更需要我们去关注。 从JSR-133开始,volatile变量的写-读可以实现线程之间的通信。 从内存语义的角度来说,volatile与监视器 ...
转自:http://www.blogjava.net/freeman1984/archive/2011/10/17/361403.html 在Java1.5之前,synchronized应该是最常用的java支持并发手段。那synchronized是怎么做到的了,从java1.0开始,java中的每个对象就一个内部锁。如果一个类的方法被synchronized关键字所修饰,那么这个对象的锁将保护整个方法。举例来说: public synchronized void method(){ method body } 等价于 public void method(){ ...
---------------表、临时表、表变量----------------- --创建临时表1 create  table  #DU_User1 (       [ID] [ int ]   NOT  NULL ,       [Oid] [ int ]  NOT  NULL ,       [Login] [nvarchar](50)  NOT  NULL ,       [Rtx] [nvarchar](4)  NOT  NULL ,       [ Name ] [nvarchar](5)  NOT  NULL ,       [ Password ] [nvarchar]( max ...
---------------------sqlserver-触发器 ------------- 触发器中的临时表:   Inserted   存放进行insert和update 操作后的数据   Deleted   存放进行delete 和update操作前的数据 --创建触发器 Create  trigger  User_OnUpdate      On  ST_User      for  Update As      declare  @msg nvarchar(50)      --@msg记录修改情况      select  @msg = N '姓名从“'  + Delet ...
--------------开篇讲述----------------------------- 首先介绍一下什么是存储过程:       存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,并且这样的语句是放在数据库中的,       还可以根据条件执行不同SQL语句, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 ---------------注意事项----------SQL2008 R2------ *修改存储过程和重新创建存储过程的区别:           如果需要更改存储过程中的语句或参数,可 ...
-------------------------------开篇基础简介--------: 存储过程通常有以下优点:[复习/更新/记忆/扩容/参考]--你的大脑有多大内存? (1).存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2).存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3).存储过程能实现较快的执行速度。如果某一操作包含大量的Transaction-SQL代码或分别被多次 ...
JavaScript经常会验证中文,这里提供两个例子: /** *A simple example */ function ischinese(temp){ var re = /[^u4e00-u9fa5]/; if(re.test(temp)) return false; return true; } /** *校验字符串是否为中文 *返回值: *如果为空,定义校验通过, 返回true *如果字串为中文,校验通过, 返回true *如果字串为非中文, 返回false 参考提示信息:必须为中文! ...
1、最佳的模型是:生产者-消费者 package com.boonya.multithread.explain; /** ============================================== * 文件:ProducerAndConsumer.java * 描述:生产者--消费者 [生产者生产了之后消费者才能消费] * 注:引入了等待通知(wait/notify)机制如下:   1、在生产者没有生产之前,通知消费者等待;在生产者生产之后,马上通知消费者消费。   2、在消费者消费了之后,通知生产者已经消费完,需要生产。 * ===== ...
1、线程不同步 在同一个进程中的线程都是独立运行的,线程之间会抢占cup, 执行先后顺序是不确定的,谁先得到谁就先执行 package com.boonya.multithread.explain; /**================================== * 文件:WhyThreadNotSynchronized.java * 描述:多线程不同步的原因 * ================================== */ // 共享一个静态数据对象 public class WhyThreadNotSynchronized { ...
说明:main代表一个线程,这个是主线程;而继承自Thread或实现Runable接口的类叫做线程类,线程类内部的run方法是用户要执行的任务,叫做线程体。线程体需要开发者自己实现。package com.boonya.base; /*主线程*/ public class MultipleThread { @SuppressWarnings("deprecation") public static void main(String[] args) { System.out.println("我是主线程"); ThreadUs ...
1. 数组分割:array.slice(start, end) slice()是用来截取数组中的一部分,用它来复制数组,如果省略了end参数,则切分的数组包含从start开始到数组结束的所有元素。 现在要用它来复制数组:var newArray=oldArray.slice(0); (1). 如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度,比如a.slice(-3,4),相当于a.slice(2,4)。 (2). 如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度,比如a.slice(0,- ...
[转]时间格式化:JS使用时间格式化函数,省去每次都要去拼接字符串的麻烦。 <!-- /** * 对Date的扩展,将 Date 转化为指定格式的String * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) * eg: * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07- ...
----问题描述: 在getJSON方法体里面可以获取到数据,但总是不能在外部获取,即使定义了一个全局变量还是无法获取。 ----解决方法: 在外部定义一个全局变量,如:var myLatlngs=[]; 在获取数据的地方设置 //示例:经纬度坐标转换 function getMyData(coordType,latlngs){ myLatlngs=[]; $.ajaxSettings.async = false;//设置为同步 $.getJSON("http://192.168.20.33:83/coordconvert/json/"+coordTyp ...
首先在官网下载qtip插件:http://craigsworks.com/projects/qtip/ 1、导入插件 <link rel="stylesheet" href="jquery.qtip.min.css" type="text/css"> <script src="jquery.js" type="text/javascript"></script> <script src="http://openlayers.org/ap ...
Global site tag (gtag.js) - Google Analytics