多线程同步方法
当一个方法被关键字synchronized声明后,就只允许一个线程来操作这个方法。也就是指一次只能让一个线程运行。
package com.zwq.impl; public class SynThread { public static void main(String[] args) { //创建SynThreadTest类的实例对象 SynThreadTest synThreadTest = new SynThreadTest(); //创建线程并启动线程 new Thread(synThreadTest).start(); System.out.println(synThreadTest.call()); } } class SynThreadTest implements Runnable{ private int x; private int y; //定义SynThreadTest的同步方法 //重写Runnable接口的run()方法,声明synchronized public synchronized void run() { for(int i=0;i<5;i++){ x++; y++; try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+":x="+x+",y="+y+"\t"+i); } } //自定义方法,并声明synchrocized public synchronized String call(){ String name = Thread.currentThread().getName(); return "hellow "+name; } }