µÚ5Õ ¶àÏß³Ì - ²¹³ä°¸Àý ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÒ» ÎÄÕµÚ5Õ ¶àÏß³Ì - ²¹³ä°¸Àý¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁb8317dca55270722182ef717

²©Ñ§¹È¡ª¡ªÈÃIT½Ìѧ¸ü¼òµ¥£¬ÈÃITѧϰ¸üÓÐЧ

µÚÎåÕ ²¹³ä°¸Àý

°¸Àý5-1 ¼Ì³ÐThreadÀà´´½¨¶àÏß³Ì

Ò»¡¢°¸ÀýÃèÊö

1¡¢ ¿¼ºË֪ʶµã

±à ºÅ£º00105002

Ãû ³Æ£º¼Ì³ÐThreadÀà´´½¨¶àÏß³Ì

2¡¢ Á·Ï°Ä¿±ê

? ÕÆÎÕÈçºÎͨ¹ý¼Ì³ÐThreadÀàʵÏÖ¶àÏ̵߳Ĵ´½¨¡£ ? ÕÆÎÕThreadÀàÖÐrun()·½·¨ºÍstart()·½·¨µÄʹÓá£

3¡¢ ÐèÇó·ÖÎö

ÔÚ³ÌÐò¿ª·¢ÖУ¬»áÓöµ½Ò»¸ö¹¦ÄÜÐèÒª¶à¸öÏß³ÌͬʱִÐвÅÄÜÍê³ÉµÄÇé¿ö¡£Õâʱ£¬¿ÉÒÔͨ¹ý¼Ì³ÐÏß³ÌÀàThread£¬²¢ÖØдThreadÀàÖеÄrun()·½·¨À´ÊµÏÖ¡£ÎªÁËÈóõѧÕßÊìϤÈçºÎ´´½¨¶àỊ̈߳¬ÔÚ°¸ÀýÖн«Í¨¹ý¼Ì³ÐThreadÀ෽ʽ´´½¨Ị̈߳¬²¢ÊµÏÖ¶àÏ̷ֱ߳ð´òÓ¡0~99µÄÊý×ֵŦÄÜ¡£

4¡¢ Éè¼Æ˼·£¨ÊµÏÖÔ­Àí£©

1) ×Ô¶¨ÒåÒ»¸öÀàDemo£¬Ê¹Æä¼Ì³ÐThreadÀà¡£

2) ÔÚDemoÀàÖÐÖØдrun()·½·¨£¬ÔÚrun()·½·¨ÄÚ±àдһ¸öforÑ­»·£¬Ñ­»·ÌåÄÚ´òÓ¡£º¡°Demo£º¡±+

µ±Ç°Ñ­»·´ÎÊý¡£

3) ±àд²âÊÔÀàExample01£¬ÔÚExample01ÀàµÄmain()·½·¨ÖУ¬´´½¨Ò»¸öDemo¶ÔÏ󣬲¢Ö´ÐÐÆä

start()·½·¨£¬½Ó×űàдһ¸öforÑ­»·£¬Ñ­»·ÌåÄÚ´òÓ¡£º¡°main£º¡±+µ±Ç°Ñ­»·´ÎÊý¡£

¶þ¡¢°¸ÀýʵÏÖ

class Demo extends Thread { }

public class Example01{

public static void main(String[] args) {

Demo d = new Demo(); d.start();

for(int x=0; x<100; x++){ }

1

System.out.println(\

public void run() {

for (int x = 0; x < 100; x++) {

}

System.out.println(\

}

²©Ñ§¹È¡ª¡ªÈÃIT½Ìѧ¸ü¼òµ¥£¬ÈÃITѧϰ¸üÓÐЧ

}

}

ÔËÐнá¹ûÈçͼ5-1Ëùʾ¡£

ͼ5-1

ÔËÐнá¹û

Èý¡¢°¸Àý×ܽá

1¡¢Í¨¹ý¼Ì³ÐThreadÀ࣬²¢ÖØдThreadÀàÖеÄrun()·½·¨¿ÉÒÔʵÏÖ¶àÏ̡߳£

2¡¢ThreadÀàÖУ¬ÌṩµÄstart()·½·¨ÓÃÓÚÆô¶¯ÐÂỊ̈߳¬Ïß³ÌÆô¶¯ºó£¬ÏµÍ³»á×Ô¶¯µ÷ÓÃrun()·½·¨¡£ 3¡¢main()·½·¨ÖÐÓÐÒ»ÌõÖ÷Ïß³ÌÔÚÔËÐС£

°¸Àý5-2 ʵÏÖRunnable½Ó¿Ú´´½¨¶àÏß³Ì

Ò»¡¢°¸ÀýÃèÊö

1¡¢ ¿¼ºË֪ʶµã

±à ºÅ£º00105003

Ãû ³Æ£ºÊµÏÖRunnable½Ó¿Ú´´½¨¶àÏß³Ì

2¡¢ Á·Ï°Ä¿±ê

? ÕÆÎÕÈçºÎͨ¹ýʵÏÖRunnable½Ó¿Ú·½Ê½´´½¨¶àÏ̡߳£

? ÕÆÎÕÈçºÎʹÓÃThreadÀàµÄÓвι¹Ôì·½·¨´´½¨Thread¶ÔÏó¡£

3¡¢ ÐèÇó·ÖÎö

ÔÚJavaÖÐÖ»Ö§³Öµ¥¼Ì³Ð£¬Òò´Ëͨ¹ý¼Ì³ÐThreadÀà´´½¨Ïß³ÌÓÐÒ»¶¨µÄ¾ÖÏÞÐÔ£¬Õâʱ¿ÉÒÔʹÓÃÁíÒ»ÖÖ·½Ê½£¬¼´ÊµÏÖRunnable½Ó¿ÚÀ´´´½¨Ï̡߳£Í¨¹ýÕâÖÖ·½Ê½ÐèÒªÔÚThread(Runnable target)µÄ¹¹Ôì·½·¨ÖУ¬´«µÝÒ»¸öʵÏÖÁËRunnable½Ó¿ÚµÄʵÀý¶ÔÏó¡£½ÓÏÂÀ´ÔÚ°¸ÀýÖн«Í¨¹ýʵÏÖRunnable½Ó¿Ú·½Ê½´´½¨Ị̈߳¬²¢ÊµÏÖ¶àÏ̷ֱ߳ð´òÓ¡0~99µÄÊý×ֵŦÄÜ¡£

4¡¢ Éè¼Æ˼·£¨ÊµÏÖÔ­Àí£©

1) ×Ô¶¨ÒåÒ»¸öÀàDemo£¬Ê¹ÆäʵÏÖRunnable½Ó¿Ú¡£

2) ÔÚDemoÀàÖи²Ð´run()·½·¨£¬ÔÚ·½·¨±àдһ¸öforÑ­»·£¬Ñ­»·ÌåÄÚ´òÓ¡£ºµ±Ç°Ïß³ÌÃû³Æ£º+

µ±Ç°Ñ­»·´ÎÊý¡£

3) ±àд²âÊÔÀàExample02£¬ÔÚExample02ÀàµÄmain()·½·¨ÖУ¬´´½¨Ò»¸öDemo¶ÔÏó£¬ÀûÓÃThread

£¨Runnable target£©¹¹Ôì·½·¨´´½¨2¸öÏ̶߳ÔÏ󣬷ֱðÃüÃûΪ¡°Ö©ÖëÏÀ¡±ºÍ¡°¸ÖÌúÏÀ¡±£¬²¢Ö´ÐÐÏ̶߳ÔÏóµÄstart()·½·¨£¬Í¬Ê±±àдforÑ­»·£¬Ñ­»·ÄÚ´òÓ¡¡°main£º¡±+µ±Ç°Ñ­»·´ÎÊý¡£

2

²©Ñ§¹È¡ª¡ªÈÃIT½Ìѧ¸ü¼òµ¥£¬ÈÃITѧϰ¸üÓÐЧ

¶þ¡¢°¸ÀýʵÏÖ

class Demo implements Runnable { }

public class Example02 { }

public static void main(String[] args) { }

Demo d = new Demo();

Thread t1 = new Thread(d,\Ö©ÖëÏÀ\Thread t2 = new Thread(d,\¸ÖÌúÏÀ\t1.start(); t2.start();

for (int x = 0; x < 100; x++) { }

System.out.println(\

public void run() { }

for(int x=0; x<100; x++){ }

System.out.println(Thread.currentThread().getName()+\

ÔËÐнá¹ûÈçͼ5-2Ëùʾ¡£

ͼ5-2

ÔËÐнá¹û

Èý¡¢°¸Àý×ܽá

1¡¢¿ÉÒÔ°ÑʵÏÖÁËRunnable½Ó¿Ú²¢ÖØдrun()·½·¨µÄʵÀý¶ÔÏó£¬×÷ΪThreadÓвι¹Ôì·½·¨µÄ²ÎÊýÀ´´´½¨¶àÏ̳߳ÌÐò¡£ 2¡¢Ê¹ÓÃThreadÀàµÄ¹¹Ôì·½·¨Thread(Runnable target, String name)´´½¨Ï̶߳ÔÏóʱ£¬»¹¿ÉÒÔ¸øÏß³ÌÖ¸¶¨ÐÂÃû³Æ¡£

3¡¢Ë¼¿¼Ò»Ï£º¼ÈÈ»ÓÐÁ˼̳ÐThreadÀàµÄ·½Ê½£¬ÎªÊ²Ã´»¹ÒªÓÐʵÏÖRunnable½Ó¿ÚµÄ·½Ê½?

a) ¿ÉÒÔ±ÜÃâÓÉÓÚJavaµÄµ¥¼Ì³Ð´øÀ´µÄ¾ÖÏÞÐÔ¡£ÔÚ¿ª·¢Öо­³£Åöµ½ÕâÑùÒ»ÖÖÇé¿ö£¬¾ÍÊÇʹÓÃÒ»¸öÒѾ­¼Ì³ÐÁËijһ¸öÀàµÄ×ÓÀà´´½¨Ị̈߳¬ÓÉÓÚÒ»¸öÀ಻ÄÜͬʱÓÐÁ½¸ö¸¸À࣬ËùÒÔ²»ÄÜÓü̳ÐThreadÀàµÄ·½Ê½£¬ÄÇô¾ÍÖ»ÄܲÉÓÃʵÏÖRunnable½Ó¿ÚµÄ·½Ê½¡£

3

²©Ñ§¹È¡ª¡ªÈÃIT½Ìѧ¸ü¼òµ¥£¬ÈÃITѧϰ¸üÓÐЧ

b) ʵÏֽӿڵķ½Ê½£¬Êʺ϶à¸öÏàͬ³ÌÐò´úÂëµÄÏß³ÌÈ¥´¦Àíͬһ¸ö×ÊÔ´µÄÇé¿ö£¬°ÑÏß³Ìͬ³ÌÐò´úÂë¡¢Êý¾ÝÓÐЧµÄ·ÖÀ룬ºÜºÃµÄÌåÏÖÁËÃæÏò¶ÔÏóµÄÉè¼Æ˼Ïë¡£ÀýÈ磺һ¸öÊÛƱ³ÌÐò¼Ì³ÐÁËThreadÀ࣬ÔÚÊÛƱʱÆô¶¯Á˶à¸öÊÛƱ³ÌÐò£¬µ«ËûÃDz»ÊÇͬһ¸ö¶ÔÏó£¬Êý¾ÝûÓй²Ïí£¬ÕâÑù¾Í»á³öÏÖƱÊýÖظ´³öÊÛµÄÇé¿ö£»¶øµ±ÊÛƱ³ÌÐòʵÏÖRunnable½Ó¿Úºó£¬¶à¸öÏß³ÌÔËÐÐͬһ¸öÊÛƱ³ÌÐò£¬ÊµÏÖÁËƱÊý¹²ÏíµÄºÃ´¦¡£

°¸Àý5-3 ÉèÖúǫ́Ïß³Ì

Ò»¡¢°¸ÀýÃèÊö

1¡¢ ¿¼ºË֪ʶµã

±à ºÅ£º00105005 Ãû ³Æ£ººǫ́Ïß³Ì

2¡¢ Á·Ï°Ä¿±ê

? Á˽âºǫ́Ï̵߳ÄÉúÃüÖÜÆÚ

? ÕÆÎÕÈçºÎ½«Ïß³ÌÉèÖÃΪºǫ́Ïß³Ì

3¡¢ ÐèÇó·ÖÎö

ĬÈÏÇé¿öÏ£¬Ð´´½¨µÄÏ̶߳¼ÊÇǰ̨Ị̈߳¬ÈôÏëʹǰ̨Ï̱߳äΪºǫ́Ị̈߳¬¿ÉÒÔʹÓÃsetDaemon(true)·½·¨ÊµÏÖ£¬ÎªÁËÈóõѧÕßÊìϤºǫ́Ị̈߳¬°¸ÀýÖн«Í¨¹ýÉèÖÃÒ»¸öºǫ́Ï̲߳¢ÑÝʾºǫ́Ï̺߳ͳÌÐò½áÊøÖ®¼äµÄ¹Øϵ¡£

4¡¢ Éè¼Æ˼·£¨ÊµÏÖÔ­Àí£©

1) ×Ô¶¨ÒåÒ»¸öÀàWatcher£¬Ê¹ÆäʵÏÖRunnable½Ó¿Ú¡£

2) ÔÚWatcherÀàÖи²Ð´run()·½·¨£¬ÔÚ·½·¨ÄÚ±àдһ¸öforÑ­»·£¬Ñ­»·ÌåÄÚ´òÓ¡£ºÏß³ÌÃû³Æ+Ñ­»·

´ÎÊý¡£

3) ±àд²âÊÔÀàExample03£¬ÔÚExample03ÀàµÄmain()·½·¨ÖУ¬´´½¨Ò»¸öWatcher¶ÔÏó£¬ÀûÓÃThread

£¨Runnable target£©¹¹Ôì·½·¨´´½¨Ï̶߳ÔÏó²¢ÃüÃû£¬½«Ïß³ÌÉèÖÃΪºǫ́Ị̈߳¬Ö´ÐиÃÏ̵߳Ästart()·½·¨£¬½Ó×űàдһ¸öforÑ­»·£¬Ñ­»·ÄÚ´òÓ¡Ñ­»·´ÎÊý¡£

¶þ¡¢°¸ÀýʵÏÖ

class Watcher implements Runnable { }

public class Example03 {

public static void main(String[] args) {

Watcher watcher = new Watcher(); Thread t = new Thread(watcher,\ÐÇʸ\t.setDaemon(true);

4

public void run() { }

for (int x = 0; x < 1000; x++) { }

System.out.println(\ÎÒÊÇ\

+\ÊØ»¤Õߣ¬\ÎÒÔÚÊØ»¤ÑŵäÄÈ\