存档

文章标签 ‘性能’

Java7并发示例集107:守护线程的创建和运行

2013年10月8日 没有评论

Java有一种特殊线程,守护线程,这种线程优先级特别低,只有在同一程序中的其他线程不执行时才会执行。

由于守护线程拥有这些特性,所以,一般用为为程序中的普通线程(也称为用户线程)提供服务。它们一般会有一个无限循环,或用于等待请求服务,或用于执行任务等。它们不可以做任何重要的工作,因为我们不确定他们什么时才能分配到CPU运行时间,而且当没有其他线程执行时,它们就会自动终止。这类线程的一个典型应用就是Java的垃圾回收。

在本节示例中,我们将创建 阅读全文…

分类: Java, 挨踢(IT) 标签: , ,

Java7并发示例集106:等待线程执行终止

2013年9月26日 没有评论

在某些场景下,我们必须等待线程执行完成才能进行下一步工作。例如,某些程序在开始执行之前,需要先初始化一些资源。这时,我们可以启动一个线程专门来做初始化任务,等到线程任务完成后,再去执行其他部分。

为此,Thread类为我们提供了join()方法。当我们使用线程对象调用此方法时,正在掉调用的线程对象将被推迟到被调用对象执行完成后再开始执行。

在本节,示例程序演示等待初始化方法完成后,再去执行其他任务。

知其然

按照下面所示步骤, 阅读全文…

分类: Java, 挨踢(IT) 标签: ,

Java7并发示例集105:线程休眠与恢复

2013年9月25日 没有评论

有时,我们需要在指定的时间点中断正在执行的线程。比如,每分钟检查一次传感器状态的线程,其余时间,线程不需要做任何事情。在此期间,线程不需要使用计算机的任何资源。过了这段时间之后,并且当Java虚拟机调度了该线程,则该线程继续执行。为此,你可以使用Thread类的sleeep()方法。该方法以休眠的方式来推迟线程的执行,而且整数类型的参数则指明休眠的毫秒数。当调用sleep()方法,休眠时间结束后,Java虚拟机分配给线程CPU运行时间,线程就会继续执行。

另一种是用sleep()方法的方式是 阅读全文…

分类: Java, 挨踢(IT) 标签: ,

分享D瓜哥最近攒的资料(架构方面)

2013年8月27日 6 条评论

扯扯蛋

以前见过零零散散地介绍一些知名网站架构的分析文章。最近D瓜哥也想研究一下各大知名网站的架构。所以,就搜集了一下这方面资料。限于时间问题,这篇文章分享的文章并没有都看完,所以不保证所有文章的质量。另外,如果有朋友发现更好的文章,欢迎留言告知。再补充进来。

知名网站架构分析

  1. 探索Google App Engine背后的奥秘(1)–Google的核心技术
  2. 探索Google App Engine背后的奥秘(2)–Google的整体架构猜想
  3. 探索Google App Engine背后的奥秘(3)- Google App Engine的简介
  4. 探索Google App Engine背后的奥秘(4)- Google App Engine的架构
  5. 探索Google App Engine背后的奥秘(5)- Datastore的设计
  6. 探索Google App Engine背后的奥秘(6)- 阅读全文…

WordPress优化小记

2013年3月11日 1 条评论

  昨晚(2013年3月8日)无意间发现“‘地瓜哥’博客网”使用的SyntaxHighlighter插件所引用的JavaScript文件竟然没有压缩。这对于追求网站加载的我来说,是不能容忍的!早在“高性能网站的十四条黄金法则”中,D瓜哥就已经介绍了提高网站加载速度的指导方法。正好周末无事,干脆就把“‘地瓜哥’博客网”优化一下。著小文一篇以记之!

压缩JavaScipt和CSS

  JavaScript压缩代码的重要性不言而喻,如今的压缩工具也有不少,例如YUI Compressor, 阅读全文…

多表关联下的测试数据制造方法(二):将数据导出为CSV文件

2013年3月8日 没有评论

多表关联下的测试数据制造方法系列

  1. 多表关联下的测试数据制造方法(一):思路详解

  上一节中,我们详细介绍了单表、多表关联等情况下,制造测试数据的思路,并用SQL、存储过程等测试了这些思路。这一节,D瓜哥讲继续上一节的思路,使用SQL Loader来提升导入数据的效率。

  使用SQL Loader来导入数据时,必须提供有规范格式的数据文件。假设,我们的基础表已经有数据了。目前需要做的事,1、根据基础表生成数据文件;2、使用SQL Loader讲数据文件中的数据导入到数据汇总表。那么,问题就来了:我们如何生存数据文件呢?这一篇文章,我们就重点关注一下,如何根据查询结果生存数据文件的问题。

  了解SQL的朋友应该都知道,使用SQL增删改查还行。如果让SQL读写文件,那真是鞭长莫及啊! 阅读全文…

多表关联下的测试数据制造方法

2013年3月6日 没有评论

  声明一下,这个方案不一定最好!另外,这个方案也许不是D瓜哥首先发明的(D瓜哥只是想解决问题),但是绝对是D瓜哥自己独立思考出来的!共享出来,希望能解决大家在制造测试数据时,遇到的烦恼。当然,如果您有更好的方案,欢迎共享出来,相互学习学习。废话少说,转入正文。

单表备份

  在讲解复杂情况之前,我们先从最简单的情况说起。最简单的情况莫过于 阅读全文…

分类: 挨踢(IT), 数据库 标签: , ,

Javascript模块化编程(二):模块化编程实战,require.js详解

2012年11月19日 没有评论

  上一篇文章“JavaScript模块化编程(一):模块原型和理论概念详解”,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。

  我采用的是一个非常流行的库require.js

  

一、为什么要用require.js?

  最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了, 阅读全文…

JavaScript模块化编程(一):模块原型和理论概念详解

2012年11月19日 2 条评论

  随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。

  网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等……开发者不得不使用软件工程的方法,管理网页的业务逻辑。

  Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑, 阅读全文…

SQL语句性能比较

2012年11月2日 3 条评论

  前两天在逛CSDN的时候,无意间看到一篇帖子,觉得不错。今天整理一下,发布出来,和大家一起讨论讨论。

  SQL的逻辑很简单:查询一张表中列A不是aValue或者列B不是bValue的记录。这样说可能不是太明白,我们直接用SQL来描述吧。SQL如下:

SELECT *
  FROM test
 WHERE id NOT IN 
       (SELECT id
          FROM test
         WHERE columnA = 'aValue'
           AND columnB = 'bValue');

  学过数理逻辑的童鞋们应该知道经过逻辑推理还可以又下面三种写法。 阅读全文…