001JAVA多线程实例对象锁与类锁
package com.skcc.mthread;
public class MuiltThread {
private static int num = 0;public MuiltThread() { // TODO Auto-generated constructor stub}/**** * synchronized void printNum(String tag) 代表 synchronized锁定的MuiltThread实例对象锁(m1,m2两者间互不影响) * static synchronized void printNum(String tag) 代表synchronized 竞争的是MuiltThread类锁 * * ****/public static synchronized void printNum(String tag) { try { if(tag.equals("a")) { num = 100; System.out.println("tag a,num 100 set over."); //Thread.sleep(1000); } else { num=200; System.out.println("tag b,num 200 set over."); } System.out.println("tag is " + tag + " num is "+ num); } catch (Exception e) { // TODO: handle exception }}public static void main(String[] args) { // TODO Auto-generated method stub MuiltThread m1 = new MuiltThread(); MuiltThread m2 = new MuiltThread(); Thread t1 = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub //m1.printNum("a"); MuiltThread.printNum("a"); } }); Thread t2 = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub
// m2.printNum("b");
MuiltThread.printNum("b");
}
});
t1.start(); t2.start();}
}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。