package Thread.Basic; /* *synchronized忥éï¼ *å½ä¸ä¸ªçº¿ç¨è®¿é®â对象âçsynchronizedæ¹æ³æåæ¥åï¼å ¶ä»çº¿ç¨è®¿é®å¯¹è¯¥å¯¹è±¡çåæ¥æ¹æ³æåæ¥åå°ä¼è¢«é»å¡ * *æ¯è¾ä¸¤ç§æ åµçåºå« * */ public class SynchronizedTest2_1 { public static void main(String[] args) { //synchronizedä¸thisæ¯myRunnable对象ï¼å¯¹myRunnable访é®äºæ¥ï¼å¿ é¡»çmyRunnableä¸å ¨é¨æ§è¡å®æ¯åæè½æ§è¡ System.out.println("-----synchronized Runnable"); myRunnable myRunnable=new myRunnable(); Thread thread1=new Thread(myRunnable,"thread1"); Thread thread2=new Thread(myRunnable,"thread2"); thread1.start(); thread2.start(); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //synchronizedä¸thisæThreadå¯¹è±¡ï¼æ°å»ºäºä¸¤ä¸ªä¸åçéï¼æ²¡æäºæ¥åç System.out.println("--------synchronized Thread"); Thread thread3=new myThread("thread3"); Thread thread4=new myThread("thread4"); thread3.start(); thread4.start(); } } class myRunnable implements Runnable{ public void run() { synchronized(this){ for(int i=0;i