JavaÏß³Ìͬ²½Ê¾Àý
ÎÄÕÂÓÃʵÀý´úÂëչʾÁËJavaÖжàÏ̷߳ÃÎʹ²Ïí×ÊÔ´
ʱÏß³Ìͬ²½
µÄÖØÒªÐÔ¡£
·Ö±ðͨ¹ýÔÚÁ½¸öÏß³ÌÖÐͬʱ·ÃÎÊ(µ÷ÓÃget_id*·½·¨)¾¹ýͬ²½´¦Àí(lock¼°Synchronized)µÄ¹²Ïí×ÊÔ´(tmp)¼°Î´¾¹ýͬ²½´¦ÀíµÄ¹²Ïí×ÊÔ´(tmp)À´ËµÃ÷ͬ²½´¦ÀíµÄµÄ×÷Óá£
mainÖзÖÁ½²¿·Ö:
1£©Ç°°ë²¿·Ö£¬non-synchronization²¿·ÖÓÃÀ´²âÊÔûÓÐ×öͬ²½´¦ÀíµÄ´úÂë¶Î£¬ÔËÐнá¹ûÓ¦¸ÃÊÇ
After thread #1 call get_id(), id=1
After thread #2 call get_id(), id=1
2£©ºó°ë²¿·Ö£¬synchronization²¿·ÖÓÃÀ´²âÊÔ×ö¹ýͬ²½´¦ÀíµÄ´úÂë¶Î£¬ÔËÐнá¹ûÓ¦¸ÃÊÇ
After thread #1 call get_id(), id=1
After thread #2 call get_id(), id=2
²Î¿¼×ÊÁÏ£º
-1-¹ØÓÚsleepºÍwaitÇø±ð¿´Ò»ÏÂÕâ¸ö: http://wurd.javaeye.com/blog/174563¡£
-2-¹ØÓÚsynchronized¿ÉÒÔ¿´Ò»ÏÂÕâÆª£ºhttp://www.wangchao.net.cn/bbsdetail_148670.html£¬±È½ÏÃ÷ÁË¡£
-3-¹ØÓÚJavaÏß³Ìͬ²½¿ÉÒÔ¿´Ò»ÏÂÕâ¸ö£ºhttp://lavasoft.blog.51cto.com/62575/27069£¬ºÜÏêϸ¡£
/********************************************************************************
*FileName: Thread_sync.java
*Date: 2010/01/12
*Intention: Test thread synchronization tools in java.
*Input:
*Output:
* in non-synchronization version
* After thread #1 call get_id(), id=1
* After thread #2 call get_id(), id=1
* in synchronization version
* After thread #1 call get_id(), id=1
* After thread #2 call get_id(), id=2
*
*DevelopmentEnv: Netbeans 6.8, Jdk 1.6.
********************************************************************************/
class Counter
{
private final static Object lock = new Object();
private static int count = 0;
public int get_id()
{
int tmp = count;
++tmp;
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
}
count = tmp;
return count;
}
public int get_id_sync()
{
synchronized(lock)
{
int tmp = count;
++tmp;
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
}
count = tmp;
}
return count;
}
}
public class Thread_sync
{
private static int cnt = 0;
static class Rab implements Runnable
{
Ïà¹ØÎĵµ£º
ÎÄÕÂÀïÓÐһЩ±í¸ñ£¬javaeyeµÄÌûºÃÏñ²»Ö§³Ö±í¸ñÐÎʽ£¬ÓÐÐËȤ¿ÉÒÔµ½ÎÒµÄblog¿´¿´¡£
http://hzxdark.javaeye.com
Ò»£®JPCAP¼ò½é
ÖÚËùÖÜÖª£¬JAVAÓïÑÔËäÈ»ÔÚTCP/UDP´«Êä·½Ãæ¸øÓèÁËÁ¼ºÃµÄ¶¨Ò壬µ«¶ÔÓÚÍøÂç²ãÒÔϵĿØÖÆ£¬È´ÊÇÎÞÄÜΪÁ¦µÄ¡£JPCAPÀ©Õ¹°üÃÖ²¹ÁËÕâÒ»µã¡£
JPCAPʵ¼ÊÉϲ¢·ÇÒ»¸öÕæÕýȥʵÏÖ¶ÔÊý¾ÝÁ´Â·²ãµÄ¿ØÖÆ£¬¶øÊ ......
// ×¢²áÓ¦ÓóÌÐòÈ«¾Ö¼üÅÌʼþ, ËùÓеļüÅÌʼþ¶¼»á±»´Ëʼþ¼àÌýÆ÷´¦Àí.
Toolkit tk = Toolkit.getDefaultToolkit();
tk.addAWTEventListener(new MyAWTEventListener(), AWTEvent.KEY_EVENT_MASK);
class MyAWTEventListener implements AWTEventListener {
private boolean controlPressed = fal ......
ÔÚʹÓÃRegularExpressionValidatorÑéÖ¤¿Ø¼þʱµÄÑéÖ¤¹¦Äܼ°ÆäÑéÖ¤±í´ïʽ½éÉÜÈçÏÂ:
Ö»ÄÜÊäÈëÊý×Ö£º“^[0-9]*$”
Ö»ÄÜÊäÈënλµÄÊý×Ö£º“^d{n}$”
Ö»ÄÜÊäÈëÖÁÉÙnλÊý×Ö£º“^d{n,}$”
Ö»ÄÜÊäÈëm-nλµÄÊý×Ö£º“^d{m,n}$”
Ö»ÄÜÊäÈëÁãºÍ·ÇÁ㿪ͷµÄÊý×Ö£º“^(0|[1- ......
ÓÐʱ£¬ÎÒÃÇÔÚдһ¸ö¹¹Ô캯Êýʱ£¬¾³£ÒòΪËü°üº¬ÖÚ¶àµÄ²ÎÊý¶ø¿àÄÕ,Õâʱ¿ÉÒÔ¿¼ÂÇÓÃBuilderģʽÀ´´´½¨¶ÔÏó¡£
È磬ÎÒÃÇÒªÉè¼ÆÒ»¸öÓªÑø³É·ÝµÄÀ࣬°üº¬ÄÜÁ¿£¬µ°°×ÖÊ£¬Ö¬·¾£¬¸Æ£¬Ìú£¬Ð¿£¬Î¬ÉúËØA, άÉúËØB1 ... µÈ£¬µ«ÔÚ¹¹ÔìµÄʱºò£¬²»Ò»¶¨Ã¿´Î¶¼ÐèÒªÕâЩ²ÎÊý£¬Èç¸Æ£¬Ìú£¬Ð¿ºÍάÉúËØµÈÊÇ¿ÉÑ¡µÄ£¬ÎªÁËÊÊÓ¦¶àÖÖ¿ÉÄܵĴîÅ䣬±È ......
import java.util.Date;
class Dog{
private String name;
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return b ......