多线程编程<一>

 1 /**
 2  * 通过制定synchronized限定符,可以同步用于对象的一个或多个方法。当调用同步的方法时,对象会被加锁,直到方法返回。
 3  * @author Burke
 4  *
 5  */
 6 public class SyncDemo {
 7     public static void main(String[] args) {
 8         Prompter p = new Prompter(1);
 9         
10         UsePrompter promptA = new UsePrompter(p, "One Two Three Four");
11         UsePrompter promptB = new UsePrompter(p, "Left Right Up Down");
12     }
13 }
14 
15 class UsePrompter implements Runnable{
16     Prompter prompter;
17     String message;
18     
19     public UsePrompter(Prompter p, String msg) {
20         prompter = p;
21         message = msg;
22         
23         new Thread(this).start();//利用此对象建立线程。
24     }
25     
26     @Override
27     public void run() {//
28         prompter.display(message);//
      
//同步块
         /*synchronized (prompter) {
            prompter.display(message);
          }*/
29 } 30 } 31 32 class Prompter{ 33 int delay; 34 35 public Prompter( int d) { 36 if(d <= 0){ 37 d = 1; 38 } 39 delay = d; 40 } 41 42 synchronized void display(String msg){ 43 for(int i=0; i < msg.length(); i++){ 44 System.out.print(msg.charAt(i)); 45 46 if(Character.isWhitespace(msg.charAt(i))){ 47 try { 48 Thread.sleep(delay*1000); 49 } catch (InterruptedException e) { 50 return; 51 } 52 } 53 } 54 System.out.println(); 55 } 56 }

 

posted @ 2014-05-14 11:00  soul390  阅读(131)  评论(0编辑  收藏  举报