java多线程系列四:synchronized
来源:互联网 发布:visual studio mac版 编辑:程序博客网 时间:2024/05/21 11:59
public class Mythread implements Runnable{public void run() {// TODO Auto-generated method stubsynchronized(this){for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+" loop "+i);try { Thread.sleep(50); } catch (InterruptedException ie) { } }}}}class Demo1_1{public static void main(String[] args){Runnable mr=new Mythread();Thread m1=new Thread(mr,"m1");Thread m2=new Thread(mr,"m2");m1.start();m2.start();}}
运行结果是:public class Mythread implements Runnable{public void run() {// TODO Auto-generated method stubsynchronized(this){for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+" loop "+i);try { Thread.sleep(50); } catch (InterruptedException ie) { } }}}}class Demo1_1{public static void main(String[] args){Runnable mr=new Mythread();Runnable mr2=new Mythread();Thread m1=new Thread(mr,"m1");Thread m2=new Thread(mr2,"m2");m1.start();m2.start();}}
运行结果:public class Mythread extends Thread{public void run() {// TODO Auto-generated method stubsynchronized(this){for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+" loop "+i);try { Thread.sleep(50); } catch (InterruptedException ie) { } }}}}class Demo1_1{public static void main(String[] args){Thread m1=new Mythread();Thread m2=new Mythread();m1.start();m2.start();}}
运行结果:public class MythreadRun {public static void main(String[] args){final demo_02 demo=new demo_02();Thread m1=new Thread(new Runnable(){public void run(){demo.synMethod();}},"m1");Thread m2=new Thread(new Runnable(){public void run(){demo.nonsynMethod();}},"m2");m1.start();m2.start();}}class demo_02{public void synMethod(){synchronized(this){try {for(int i=0;i<5;i++){Thread.sleep(100);System.out.println(Thread.currentThread().getName()+" loop "+i);}} catch (Exception e) {// TODO: handle exception}}}public void nonsynMethod(){try {for(int i=0;i<5;i++){Thread.sleep(100);System.out.println(Thread.currentThread().getName()+" loop "+i);}} catch (Exception e) {// TODO: handle exception}}}
运行结果:class Count {public void synMethod(){ synchronized(this){ try { for (int i = 0; i < 5; i++) { Thread.sleep(100); System.out.println(Thread.currentThread().getName() + " loop " + i); } } catch (InterruptedException ie) { } } } public void nonsynMethod(){synchronized(this){ try { for (int i = 0; i < 5; i++) { Thread.sleep(100); System.out.println(Thread.currentThread().getName() + " loop " + i); } } catch (InterruptedException ie) { }}}}public class Demo{public static void main(String[] args){final Count count=new Count();Thread m1=new Thread(new Runnable(){public void run(){count.synMethod();}},"m1");Thread m2=new Thread(new Runnable(){public void run(){count.nonsynMethod();}},"m2");m1.start();m2.start();}}
- java多线程系列四:synchronized
- 多线程系列四-同步-Synchronized
- Java多线程系列03----synchronized
- Java多线程干货系列--------synchronized
- java多线程总结四:volatile、synchronized示例
- java多线程总结四:volatile、synchronized示例
- java多线程总结四:volatile、synchronized示例
- Java多线程系列5(synchronized)
- java多线程系列(一)--synchronized同步方法
- JAVA多线程系列--关键字(volatile,synchronized)
- java多线程(四)synchronized关键字修饰方法
- java多线程(四)synchronized关键字修饰方法
- Java多线程编程(四)—浅谈synchronized与lock
- Java多线程编程(四)—浅谈synchronized与lock
- Java多线程编程(四)—浅谈synchronized与lock
- Java多线程编程(四)—浅谈synchronized与lock
- Java多线程复习与巩固(四)--synchronized的实现
- java多线程、并发系列之 (synchronized)同步与加锁机制
- [C++]内存管理器--谈论如何自定义内存分配机制
- 网络流二十四题之九 —— 方格取数问题(GRID)
- 适配器的优化
- java常用工具类之DES和Base64加密解密类
- activity 背景色 透明
- java多线程系列四:synchronized
- POJ 1273 Drainage Ditches -dinic
- bzoj3158 千钧一发
- ACM 搜索 hdu1010 Tempter of the Bone
- 1670 打怪兽
- Web
- Java设计模式之代理设计模式
- 产品经理常用设计方法之一
- 24-网络编程http和简单的JSON