java synchronized线程同步
来源:互联网 发布:软件开发的公司 编辑:程序博客网 时间:2024/05/19 23:58
这个就相当于Qt5里面的 QMutex互斥量,在一个线程 使用一个公共资源之前 调用 mutex.lock(),锁住后只允许当前线程调用此资源 其余线程等待,然后 调用 mutex.unlock()解锁,解锁后大家都可以抢,然后又有一个锁定。。。
HanThread.java
package threadsafe;public class HanThread extends Thread{private static int i;static{i=0;}public static int getI(){return HanThread.i;}public HanThread() {// TODO Auto-generated constructor stub}@Overridepublic void run() {// TODO Auto-generated method stubint i=0;while(i<10){HanThread.i=HanThread.i+1;Singleton.Printf();i++;}}}Singleton.java
package threadsafe;public class Singleton {public static void Printf(){ System.out.println("A"); System.out.println("b"); System.out.println("C"); System.out.println("D"); System.out.println("E"); System.out.println("F"); System.out.println("G"); System.out.println("H"); System.out.println("I"); System.out.println("J"); System.out.println("K"); System.out.println("L"); System.out.println(HanThread.getI());}}
HanEntity.java
package threadsafe;public class HanEntity {public static void main(String[] args){HanThread thread1=new HanThread();HanThread thread2=new HanThread();thread1.start();thread2.start();}}
运行结果:
AbCDEAbCDEFGHIJKL2AbCDEFGFGHIJKL3AbCDEFGHIJKL4AbCDEFGHIJKL5AbCDEFGHIJKL6AbCDEFGHHIJKL7AbCDEFGHIJKL8AbCDEFGHIJKL9AbCDEFGHIJKL10AbCDEFGHIJKL11AbCDEFGHIJKL12AbCDEFGHIJKL13AbCDEFGHIJKL14AbCDEFGHIJKL15AbCDEFGIJKL16AbCDEFGHIJKLHIJKL1717AbCDEFGHIJKL18AbCDEFGHIJKL19AbCDEFGHIJKL20使用了 synchronized的版本
HanThread.java
package threadsafe;public class HanThread extends Thread{private static int i;static{i=0;}public static int getI(){return HanThread.i;}public HanThread() {// TODO Auto-generated constructor stub}@Overridepublic void run() {// TODO Auto-generated method stubint i=0;while(i<10){HanThread.i=HanThread.i+1;Singleton.Printf();i++;}}}Singleton.java
package threadsafe;public class Singleton {public static synchronized void Printf(){ System.out.println("A"); System.out.println("b"); System.out.println("C"); System.out.println("D"); System.out.println("E"); System.out.println("F"); System.out.println("G"); System.out.println("H"); System.out.println("I"); System.out.println("J"); System.out.println("K"); System.out.println("L"); System.out.println(HanThread.getI());}}
HanEntity.java
package threadsafe;public class HanEntity {public static void main(String[] args){HanThread thread1=new HanThread();HanThread thread2=new HanThread();thread1.start();thread2.start();}}
运行结果:
AbCDEFGHIJKL2AbCDEFGHIJKL3AbCDEFGHIJKL4AbCDEFGHIJKL4AbCDEFGHIJKL5AbCDEFGHIJKL6AbCDEFGHIJKL8AbCDEFGHIJKL9AbCDEFGHIJKL10AbCDEFGHIJKL11AbCDEFGHIJKL12AbCDEFGHIJKL13AbCDEFGHIJKL14AbCDEFGHIJKL14AbCDEFGHIJKL15AbCDEFGHIJKL16AbCDEFGHIJKL17AbCDEFGHIJKL18AbCDEFGHIJKL19AbCDEFGHIJKL20
0 0
- java 线程同步 synchronized
- java 线程同步 synchronized
- java synchronized 线程同步
- Java 线程同步 synchronized
- Java线程同步synchronized
- java线程同步-synchronized
- java线程同步:synchronized
- java synchronized线程同步
- JAVA 线程同步 synchronized
- java 线程synchronized 线程同步
- java线程同步之synchronized
- Java 线程同步(synchronized)
- java 线程同步:synchronized 关键字
- java线程之同步synchronized
- java中synchronized,线程同步
- Java线程同步问题synchronized
- java线程同步 synchronized同步锁
- java 线程synchronized 线程同步
- css 无固定width/height容器内的绝对定位元素拉伸
- ObjectC快速入门教程(1)--创建类
- spring的xml配置文件中命名空间
- 自定义View
- Android Studio2.0以上反射$change属性问题
- java synchronized线程同步
- HTMLCSS基础-标签默认样式值重置
- 高斯消元 hdu5833,hdu3364,hihocoder1195
- Maven学习 (一) 搭建Maven环境
- 概率
- Android react native 入门
- 实施大数据应用?别忘了搜索!
- 关于ClassNOtFoundException异常
- jquery根据name属性查找