2006-04-29

[转]浅谈qmail之邮件转发规则 - Mail服务器 - ChinaUnix.net

浅谈qmail之邮件转发规则 - Mail服务器 - ChinaUnix.net

Dive Into Python笔记

五、对象和面向对象
5.1 类的定义
1.派生类继承基类时,基类写在派生类名字后的小括号里,就想方法的参数一样,class FileInfo(UserDict)...
2.多重继承时,只需在类名后小括号中用逗号分割基类名即可。
3.任何 Python 类方法的第一个参数(对当前实例的引用)都叫做 self,相当于java中的this。
4.调用类方法时不用写self参数。
5.self不是关键字,只是习惯写成self。
6.__init__没有返回值,是可选并非必须的,必须显示调用基类的__init__。
7.派生类中调用基类方法时,必须写self参数。
8.派生类想扩展基类的方法,必须在方法中显式调用基类的方法。

5.2 类实例的创建
1.创建类的实例,只用像调用函数一样调用类名,参数为__init__方法的参数,注意不用self。
2.__class__,实例的内置属性,类类型,表示对象的类,相当于java中的每个实例的Class类。
3.__dict__,实例的内置属性,字典类型,存储对象的所有可写属性(非内置属性)。
4.__bases__,实例的内置属性,元组类型,基类的所有__class__。
5.__name__,实例或类型的名称。
6.所有实例的内置属性为read-only。
7.__class__是一个类的引用,而self是一个类的实例。???

5.3 类属性和数据属性
1.类属性对应java里的类变量(static变量),可通过类名和实例名来访问,并被所有类和实例共享。
2.数据属性对应java类中的一般变量,通过实例来访问(如果是public)。
3.类属性在类名下面一行直接赋值。
3.数据属性一般在__init__方法中赋值,其赋值方法和python中一般变量一样,无需声明,直接赋值就产生。
3.python中没有方法重载。
4.python中
5.4 专有类方法
1.专有类方法是在用特殊语法时由python自动调用的。
2.__new__
3.__init__
4.__del__
5.__repr__
6.__str__
7.__le__
8.__le__
9.__eq__
10.__ne__
11.__gt__
13.__ge__
14.__cmp__
15.__rcmp__
16.__hash__
17.__nonzero__
18.__unicode__
19.__getattr__
20.__setattr__
21.__delattr__
22.__getattribute__
23.__get__
24.__set__
25.__delete__
26.__slots__
27.__metaclass__
28.__call__
29.__len__
30.__getitem__
31.__setitem__
32.__delitem__
33.__iter__
34.__contains__
35.__getslice__
36.__setslice__
37.模拟数值类型的专有类方法
5.5 私有函数
1.私有函数不可以从它们的模块外面被调用。
2.私有类方法不能够从它们的类外面被调用。
3.私有属性不能够从它们的类外面被访问。
4.所有私有属性和私有方法以命名来标识是否私有,__开头,但是__不结尾,

Retrotranslator--将JDK5.0项目完全转换为JDK1.4 字节码的恩物 - 花钱的年华

Retrotranslator--将JDK5.0项目完全转换为JDK1.4 字节码的恩物 - 花钱的年华

2006-04-15

tomcat并发性能测试

tomcat版本:5.0.28
jdk版本:1.4.2_10
数据库记录数:200
并发数:1000 个线程用http的方式同时进行
最大响应时间:11.922s
最小响应时间:0.016s
平均响应时间:5.661899s

500个并发数时,一般都能在1s中左右返回,由此可见tomcat的并发数并不像某些人说的那样很差。支持这样的并发数肯定满足我的需求了。

linux下tomcat随系统自动启动脚本

#!/bin/sh
#
# chkconfig: 345 86 14
# description: manager tomcat
#
# filename:/etc/rc.d/init.d/tomcat5
#

javaDir=`ls /usr/java`
for java in $javaDir
do
export JAVA_HOME="/usr/java/${java}"
done

export TOMCAT_HOME="/usr/tomcat5"

case $1 in
start) $TOMCAT_HOME/bin/startup.sh
;;
stop) $TOMCAT_HOME/bin/shutdown.sh
;;
restart) $TOMCAT_HOME/bin/shutdown.sh
$TOMCAT_HOME/bin/startup.sh
;;
*) echo "Usage: $0 {start|stop|restart}"
;;
esac
exit 0

用RPM打包TOMCAT,并启动自动启动脚本

Summary: tomcat 5.0.28
Name: tomcat
Version: 5.0.28
Release: 1
License: GPL
Group: Applications/Text
Source: tomcat-5.0.28.tar.gz
Source1: tomcat5
BuildRoot: %{_builddir}/%{name}

%description
My tomcat rpm installer

%prep
%setup -q

%build

%install
mkdir -p $RPM_BUILD_ROOT/usr/tomcat5
cp -fr %{_builddir}/tomcat-5.0.28/* $RPM_BUILD_ROOT/usr/tomcat5/
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d/
cp -f %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/

%clean
rm -rf $RPM_BUILD_ROOT

%post
chmod +x /etc/rc.d/init.d/tomcat5
chkconfig --add tomcat5
service tomcat5 start

%preun
service tomcat5 stop

%files
%defattr(-,root,root)
/usr/tomcat5
/etc/rc.d/init.d/tomcat5