java线程同步时,不同线程通过不同方法,访问同一资源
2013-11-16 09:45
369 查看
/* * 线程同步锁定了对象,只能保证同一时间内只有一个线程访问那个方法, * 不能阻止别的线程访问别的方法,要对所有访问这个资源的方法都上锁 */ public class TT implements Runnable{ int a = 100; public synchronized void m1() { //锁定了本对象 a = 1000; try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("a = " + a); } /* public void m2() { //别的线程还可以访问到这个方法,改掉共享资源a的值 a = 2000; System.out.println(a); } */ public synchronized void m2() { //给本方法也上锁,避免资源被乱访问 a = 2000; System.out.println(a); } public static void main(String[] args) { TT tt = new TT(); Thread t = new Thread(tt); t.start(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } tt.m2(); } @Override public void run() { m1(); } }
相关文章推荐
- Java中一个类里面有两个用synchronized修饰的非静态方法,不同的线程中的实例访问这两个方法时会发生什么?
- java线程同步方法,方法块区别
- java线程学习5——线程同步之同步方法
- Java多线程-线程的同步(同步方法)
- java通过共享变量结束run停止线程的方法示例
- JAVA Runtime.addShutdownHook()方法{拿到线程句柄,在程序关闭之前调用释放资源}
- JAVA线程调用yield方法主动让出CPU资源
- 通过servlet封装不同应用之间的访问方法
- java 访问不同资源方式
- 通过JAVA的main方法直接访问spring mvc 的controller
- jmeter中通过beanshell访问eclipse中导出jar中的java类的方法
- Java多线程-通过线程的中断来深入学习interrupt方法,Volatile关键字
- Java线程:线程的同步---同步方法
- 下面属于java线程同步方法的方法有
- 自己总结线程并发的访问资源的解决方法
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法
- Java牛角尖【008】: 可以通过调用一个线程的run方法启动一个线程吗?
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法(转载)
- C#多线程-不同线程之间通过事件委托封送调用方法
- C#多线程-不同线程之间通过事件委托封送调用方法