多线程Synchronized同步总结

synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法,有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A;没有的话,直接运行。
它可以用来同步方法,代码块;可以用在方法声明(静态方法、非静态方法),也可以传参; 对象锁需要注意是否会造成一个方法执行,其他方法也要等待的情况(将整个对象都上锁,而不允许其他线程短暂地使用对象中其他同步方法来访问共享资源),所以要注意锁的不同

常用排序算法的java实现

分类 – 插入排序:直接插入排序,希尔排序 – 交换排序:冒泡排序,快速排序 – 选择排序:简单选择排序,堆排序 – 归并排序
时间复杂度:简单排序如插入、冒泡、选择是O(n²),高级如快速、归并、堆是O(nlgn)
本类使用枚举存入各算法和接口实现,main方法打印排序后的数组

1
2
3
4
5
6
/**
 * 排序算法接口
 */
interface Sort {
    public void sort(int[] data);
}

[转]大型高性能网站的十项规则

[转]作者:Steve Mushero 译者:侯伯薇
在我们公司ChinaNetCloud,见过多种不同类型的网站和系统,有好也有差。其中有些系统拥有良好的服务器/网络架构,并且进行了合理的调整和监控 ;然而一般的系统都会有安全和性能上的问题,不能良好运行,也无法变得更流行。

在中国,开源的LAMP栈是最流行的网络架构,它使用PHP开发,运行在Apache服务器上,以MySQL作为数据库,所有这些都运行在Linux上。它是个可靠的平台,运行良好,是现在全球最流行的Internet系统架构。然而,我们很难对其规模进行正确的扩展并保持安全性,因为每个应用层都有其自身的问题、缺陷和最佳实践。我们的工作就是帮助企业用最低的操作成本来创建并运行高性能的、可伸缩的、安全的系统,因此对于这类问题我们有很丰富的经验。

宁静(二)

我已经开始喜欢这种感觉了, 晚上, 关了门,关了灯,一个人, 听着音乐,享受独处,真是美妙!

生活是多少新鲜, 我的心里充满了好奇, 如太阳朝升夕落,每天都是新的, 哦,拥抱激情,真是美妙!

站在不高的山头, 看远处绿树舞动, 动物奔跑,鸟儿飞翔, 还有太阳、云朵和天空, 大自然啊,真是美妙!

宁静(一)

现在是周五的晚上,已经十点半了,我想睡觉,可是,要求如此却也不能如愿:房间隔音效果不太好,这倒问题不大,但兄弟姐妹们着实很喜欢聊天,唱歌,喧嚣……好几次我是睡了又起,看会书,等等再睡,这次就写点东西吧 – 是为记。

我一直觉得,在人生的不同阶段,对于人生的认识多少都会有所改变,在我们的童年,基本上没有谁会考虑生死;青春少年时,思想萌动,恰如“独上西楼,为赋新诗强说愁”,其实我们的那点阅历和体验简直如西湖里的单细胞生物般微不足道,更多时候脑袋里充斥着青春期的躁动、叛逆……对于生命,有过多少真正的思考呢?

本地搭建SVN服务器及配置

1. 创建SVN数据库

1
svnadmin create D:\svn

说明: repository创建完毕后会在目录下生成若干个文件和文件夹, dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据; db目录就是所有版本控制的数据文件; hooks目录放置hook脚本文件的目录; locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端; format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;