1 import java.util.concurrent.locks.Lock; 2 import java.util.concurrent.locks.ReentrantLock; 3 4 public class LookTest 5 { 6 public static void main(String[] args) 7 { 8 runThread("hello"); 9 runThread("world");10 }11 12 private static void runThread(final String str)13 {14 new Thread(new Runnable()15 {16 public void run()17 {18 // outPut(str);19 outPut2(str);20 }21 }).start();22 }23 24 private static void outPut(String str)25 {26 // 使用synchronized对代码加锁27 synchronized (LookTest.class)28 {29 for(int i = 0; i < str.length(); i++)30 {31 System.out.print(str.charAt(i));32 }33 System.out.println();34 }35 }36 37 private static Lock lock = new ReentrantLock();38 private static void outPut2(String str)39 {40 // 使用lock锁41 lock.lock();42 for(int i = 0; i < str.length(); i++)43 {44 System.out.print(str.charAt(i));45 }46 System.out.println();47 lock.unlock();48 }49 }
输出结果:
world
hello