ת£ºÌ½Ë÷ Java ͬ²½»úÖÆ
̽Ë÷ Java ͬ²½»úÖÆ http://www.ibm.com/developerworks/cn/java/j-lo-synchronized/ Monitor Object ²¢·¢Ä£Ê½ÔÚ Java ͬ²½»úÖÆÖеÄʵÏÖ ¼¶±ð£º Öм¶ Àî Èýºì (lisanh@cn.ibm.com), ¸ß¼¶Èí¼þ¹¤³Ìʦ, IBM 2008 Äê 12 Ô 26 ÈÕ
±¾ÎÄ´ÓµäÐ굀 Monitor Object Éè¼ÆÄ£Ê½ÈëÊÖ£¬´ÓÒ»¸öеÄÊӽǣ¬À´Ì½ÌÖ Java ÓïÑÔµÄͬ²½»úÖÆ¡£ ±¾ÎĽ«´ÓÁ½¸ö·½Ãæ½øÐвûÊö:
ʹÓà C++ ÓïÑÔÀ´ÃèÊö Monitor Object Éè¼ÆÄ£Ê½¡£Java ¶ÔÓÚÕâÑùÒ»¸öµäÐ͵Äģʽ×öÁ˺ܺõÄÓïÑÔ²ãÃæµÄ·â×°£¬Òò´Ë¶ÔÓÚ Java µÄ¿ª·¢ÕßÀ´Ëµ£¬ºÜ¶à¹ØÓÚ¸Ãģʽ±¾ÉíµÄ¶«Î÷±»ÆÁ±ÎµôÁË¡£±¾ÎÄÊÔͼʹÓà Native C++ ÓïÑÔ£¬°ïÖú¶ÁÕß´Ó±¾ÖÊÉÏ¶Ô Monitor object Éè¼ÆÄ£Ê½ÓÐÒ»¸ö¸üÈ«ÃæµÄÈÏʶ¡£
½áºÏ C++ °æ±¾µÄ Monitor Object Éè¼ÆÄ£Ê½£¬ÒýÁì¶ÁÕß¶ÔÓÚ Java ͬ²½»úÖÆÓÐÒ»¸ö¸üÉî¿ÌµÄÈÏʶ£¬°ïÖú¶ÁÕßÕýÈ·ÓÐЧµØÊ¹Óà Java ͬ²½»úÖÆ¡£ Ô¤±¸ÖªÊ¶ ÔÚ¿ªÊ¼ÕýʽÌÖÂÛ֮ǰ£¬ÐèÒªÁ˽âһЩԤ±¸ÖªÊ¶¡£ ʲôÊÇ RAII ×ÊÔ´»ñÈ¡¼´³õʼ»¯£¨RAII, Resource Acquisition Is Initialization£©ÊÇÖ¸£¬ÔÚÒ»¸ö¶ÔÏóµÄ¹¹Ô캯ÊýÖлñµÃ×ÊÔ´ , ²¢ÇÒÔڸöÔÏóµÄÎö¹¹º¯ÊýÖÐÊÍ·ÅËü¡£Õâ¸ö×ÊÔ´¿ÉÒÔÊǶÔÏó¡¢ÄÚ´æ¡¢Îļþ¾ä±ú»òÕ߯äËüÀàÐÍ¡£ÊµÏÖÕâÖÖ¹¦ÄܵÄÀ࣬ÎÒÃǾÍ˵Ëü²ÉÓÃÁË×ÊÔ´»ñÈ¡¼´³õʼ»¯£¨RAII£©µÄ·½Ê½¡£ RAII ÊÇÒ»ÖֺܵäÐ͵ÄÓïÑÔ¹ßÓ÷¨£¬±»ºÜ¶àµÄ OO ÓïÑÔËùʹÓã¬ÏÂÃæÊÇ C++ µÄÀý×Ó¡£ Çåµ¥ 1. RAII Using C++
class Raii {
public:
// Store a pointer to the resource and initialize the resource.
Raii(Resource &resource)
:m_pRes (&resource){
m_pRes->initialize ();
}
// Close the resource when the execution goes out of scope.
virtual ~Raii() {
m_pRes->close ();
}
private:
// Pointer to the resource we're managing.
Resource *m_pRes;
// ... maybe need disallow copying and assignment ...
Ïà¹ØÎĵµ£º
µÚ8Õ ¶àÏß³Ì
±¾ÕÂĿ¼
8.1¡¡²¢·¢ÐÔ¡¢Ïß³ÌÓë¶àÏß³Ì
8.2¡¡»ñµÃÏß³ÌÌåµÄÁ½ÖÖ·½·¨
8.3¡¡Ï̵߳÷¶È
8.1¡¡²¢·¢ÐÔ¡¢Ïß³ÌÓë¶àÏß³Ì
Ò»¡¢²¢·¢ÐԵĸÅÄî
ĿǰµÄ¼ÆËã»ú²Ù×÷ϵͳ´ó¶àÖ§³Ö²¢·¢ÐÔ£¬¼´¶à¸ö½ø³ÌÊǽ»²æÖ´Ðеģ¬Ò»°ã³Æ¶à½ø³ÌΪϵͳ¼¶²¢·¢¡£
JavaÓïÑÔͨ¹ý³ÌÐò¿ØÖÆÁ÷À´Ö´ÐгÌÐò£¬µ¥¸öµÄÒ»¶Î³ÌÐòÖ´ÐпØÖÆÁ÷³ÆÎªÏ̡߳£
¶àÏß ......
package Sort;
/**
* ÅÅÐò²âÊÔÀà
* ÅÅÐòËã·¨µÄ·ÖÀàÈçÏ£º
* 1.²åÈëÅÅÐò£¨Ö±½Ó²åÈëÅÅÐò¡¢ÕÛ°ë²åÈëÅÅÐò¡¢Ï£¶ûÅÅÐò£©£»
* 2.½»»»ÅÅÐò£¨Ã°ÅÝÅÅÐò¡¢¿ìËÙÅÅÐò£©£»
* 3.Ñ¡ÔñÅÅÐò£¨Ö±½ÓÑ¡ÔñÅÅÐò¡¢¶ÑÅÅÐò£©£»
* 4.¹é²¢ÅÅÐò£»
* 5.»ùÊýÅÅÐò¡£
*
* ¹ØÓÚÅÅÐò·½·¨µÄÑ¡Ôñ£º
* (1)Èôn½ÏС(Èçn≤50)£¬¿É²ÉÓÃÖ±½Ó²åÈ ......
²ÊÎåÁ¬ÖéÓÎÏ·¿ª·¢¹ý³Ì
²ÊÎåÁ¬Ö飬һ¿ªÊ¼½Ð“Îå²ÊÁ¬Ö锣¬Í¬Ñ§¿¹Òé˵²»»áÍæ£¬ÒòΪËýÀí½â³ÉÁËÒª°ÑÎåÖÖ²»Í¬ÑÕÉ«µÄÇòÁ¬³ÉÒ»Ïß²ÅÄÜÓ®£¬¿¼Âǵ½Õâ¸ö±êÌâµÄÈ·ÒýÈËÎó½â£¬ÓÎÏ·ÓÖûÓÐÈκÎ˵Ã÷£¬×îÖÕ°ÑÃû³Æ¸Ä³ÉÁË“²ÊÎåÁ¬Ö锡£ÕâÊÇÒ»¸öºÜ¾µäµÄСÓÎÏ·£¬ºÜ¶àÊÖ»úÀï¶¼ÓУ¬×î½üÒòΪѧϰjava£¬×÷ΪÁ·Ï°£¬°ÑÕâ¸öÓÎÏ·×ö ......
µÚÒ»£¬ ̸̸final, finally, finalizeµÄÇø±ð¡£ £¨×î³£±»Îʵ½£©
finalÐÞÊηû£¨¹Ø¼ü×Ö£©
Èç¹ûÒ»¸öÀà±»ÉùÃ÷Ϊfinal£¬Òâζ×ÅËü²»ÄÜÔÙÅÉÉú³öеÄ×ÓÀ࣬²»ÄÜ×÷Ϊ¸¸Àà±»¼Ì³Ð¡£Òò´ËÒ»¸öÀ಻Äܼȱ»ÉùÃ÷Ϊabstract£¬ÓÖ±»ÉùÃ÷Ϊfinal¡£½«±äÁ¿»ò·½·¨ÉùÃ÷Ϊfinal£¬¿ÉÒÔ±£Ö¤ËüÃÇÔÚʹÓÃÖв»±»¸Ä±ä¡£Æä³õʼ»¯¿ÉÒÔÔÚÁ½¸öµØ·½ ......
JavaÉϵı¦Ê¯ JRuby 1.5Õýʽ·¢²¼
2010Äê05ÔÂ12ÈÕ£¬JRubyÍŶӷdz£¸ßÐ˵ÄÐû²¼1.5.0°æµÄ·¢²¼¡£ÔÚÕâ֮ǰ£¬Ôø¾·¢²¼¹ýJRuby 1.5.0 RC1µÄ·¢²¼ÏûÏ¢£¬Ïà±È֮ϣ¬Õýʽ·¢²¼±¾±¾ÓÖÌṩÁ˺ܶà¸üС£
JRuby 1.5.0 °æ±¾µÄÖ÷Ò³ºÍÏÂÔØµØÖ··Ö±ðÊÇ£º
Ö÷Ò³£ºhttp://www.jruby.org/
ÏÂÔØ£ºhttp://www.jruby.org/download
Õâ´Î·¢²¼ÊÇJRubyÀú ......