class Resource
{
private int j=0;
//j增加1
public synchronized void add(){
j++;
System.out.println(Thread.currentThread().getName()+"...add..."+"目前j的值为:"+j);
}
//j减少1
public synchronized void des(){
j--;
System.out.println(Thread.currentThread().getName()+"-des-"+"目前j的值为:"+j);
}
}
class FourThreadTest
{
//创建Resource对象
private Resource resource = new Resource();
public static void main(String[] args)
{
FourThreadTest fourThread = new FourThreadTest();
fourThread.test();
}
public void test(){
for(int i=0;i<2;i++){
new Thread(new Runnable(){
public void run(){
while(true){
try
{
Thread.sleep((long)(Math.random()*1000));
}
catch (InterruptedException e)
{
e.printStackTrace();
}
resource.add();
}
}
}).start();
new Thread(new Runnable(){
public void run(){
while(true){
try
{
Thread.sleep((long)(Math.random()*1000));
}
catch (InterruptedException e)
{
e.printStackTrace();
}
resource.des();
}
}
}).start();
}
}
}
public class Main{
private int j=0;//定义变量j
public synchronized add(){
j++;//定义同步方法每次只有一个线程对j进行j++操作
}
public synchronized dec(){
j--;//定义同步方法每次只有一个线程对j进行j--操作
}
public static void main(String[] args){
for(int i=0;i<2;i++){
new Thead(new Runnable(){//使用匿名内部类进行线程的创建,重写run()方法,调用add()方法
public void run(){
while(true){
add();
}
}
}).start();
new Thead(new Runnable(){//使用匿名内部类进行线程的创建,重写run()方法,调用dec()方法
public void run(){
while(true){
dec();
}
}
}).start();
}
}
}