2011年12月28日 星期三

Dhcp Server 架設

在追Dhcp問題時,順便架設了Dhcp Server,記錄一下,以免以後忘了


1、安裝Dhcp 伺服器
# apt-get install dhcp3-server 

出現 * check syslog for diagnostics. [fail]

這是自動啟用失敗,需要正確後再啟用。



2、修改 /etc/dhcp/dhcpcd.conf,設定參照如下,網段可自行設定

ddns-update-style none;
option domain-name "test.com";
option domain-name-servers 10.1.1.1, 10.1.1.2;


default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 10.1.1.0 netmask 255.255.255.0 {
range dynamic-bootp 10.1.1.41 10.1.1.50;
option broadcast-address 10.1.1.255;
option routers 10.1.1.1;

}

3、修改 /etc/default/dhcp3-server
INTERFACES="eth0" <<設定要listen 的interfaces

4、指定IP給eth0
ifconfig eth1 10.1.1.0 netmask 255.255.255.0


最後啟動DHCP
/etc/init.d/dhcp3-server start 



★注意一點,最好使用root 權限

2011年12月1日 星期四

Synchronized

使用時機
Synchronized的使用時機很難定義,比較常見的情況是,當程式中會取出某一個共用的物件且會判斷物件內容值,再更新物件內容,此情況大部分都需要synchronized保護。

1. Synchronized Method :鎖定Method所屬物件,如Method被 new 超過1個以上,會保護不到Method內的程式。
2. Synchronized Static Method :此種synchronized用法鎖定的物件為Method所屬的物件的Class,不管被new幾次,都能夠保證同一個時間只會有一個Thread在執行此Method。

3. Synchronized(this) :應用同2,也是在鎖定Method

4. Synchronized(SomeObject) :此種synchronized用法鎖定的是SomeObject,如果SomeObject是同一個Class的兩個不同Instance,那 synchronized區塊內就有可能被同時執行。如果每一個Synchronized的SomeObject都是同一個Instance(或者 SomeObject本身就是Static),就可以保證區塊內同時間只會有一個Thread執行。
當使用Synchornized(SomeObject)時,SomeObject本身處於被Lock狀態,但此時其他的Thread是可以去更改SomeObject裡面的值,Lock只是同步化的狀態,不表示不能更改資料。