一系列1: 细说Java多线程之内存可见性
2017-08-06 16:31
148 查看
代码练习
package com.thread.Thread_01; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; class Counter { private static volatile int num = 0; private Lock lock = new ReentrantLock(); /* * 一种方式 * public static int getCou() { \ * synchronized(Counter.class) { num++; * return num; * } * } */ public int getCou() { //不能再static中使用 lock.lock(); try { num++; return num; } finally { lock.unlock(); } } } class MyApp extends Thread { public void run() { for (int i = 0; i < 500; i++) { Counter counter = new Counter(); int cou = counter.getCou(); System.out.println(currentThread().getName() + " : " + cou); } } }
package com.thread.Thread_01; public class App { public static void main(String[] args) { Thread t1 = new MyApp(); t1.setName("*********"); t1.start(); Thread t2 = new MyApp(); t2.setName("&&&&&&&&&"); t2.start(); } }
相关文章推荐
- 细说Java多线程之内存可见性
- 细说java多线程之内存可见性
- 细说Java多线程之内存可见性
- Java多线程之内存可见性
- java多线程(1) ------volatile 和内存可见性
- java多线程之内存可见性-synchronized、volatile
- Java多线程之内存可见性
- JavaSE学习53:细说多线程之内存可见性
- JavaSE学习53:细说多线程之内存可见性
- Java多线程之内存可见性
- Java多线程之内存可见性
- java多线程之内存可见性
- java多线程内存可见性2
- java多线程之内存可见性之synchronized
- Java多线程之内存可见性
- JavaSE学习53:细说多线程之内存可见性
- Java 细说多线程之内存可见性
- Java多线程之内存可见性和原子性:Synchronized和Volatile的比较
- Java多线程之内存可见性
- Java之多线程内存可见性_3(synchronized和volatile比较)