-
public class IncDecThread {
-
-
private int j=10;
-
-
/*
-
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
-
* 两个问题:
-
* 1、线程同步--synchronized
-
* 2、线程之间如何共享同一个j变量--内部类
-
*/
-
public static void main(String[] args) {
-
IncDecThread incDec=new IncDecThread();
-
Inc inc=incDec.new Inc();
-
Dec dec=incDec.new Dec();
-
for(int i=0;i<2;i++){
-
Thread thread=new Thread(inc);
-
thread.start();
-
thread=new Thread(dec);
-
thread.start();
-
}
-
}
-
-
public synchronized void inc(){
-
j++;
-
System.out.println(Thread.currentThread().getName()+"-inc:"+j);
-
}
-
public synchronized void dec(){
-
j--;
-
System.out.println(Thread.currentThread().getName()+"-dec:"+j);
-
}
-
-
class Inc implements Runnable{
-
public void run(){
-
for(int i=0;i<20;i++){
-
inc();
-
}
-
}
-
}
-
class Dec implements Runnable{
-
public void run(){
-
for(int i=0;i<20;i++){
-
dec();
-
}
-
}
-
}
- }
用java写一个多线程程序,其中两个对一个变量加1,另两个对一个变量减1
最新推荐文章于 2022-08-17 22:19:37 发布
本文通过一个Java实例展示了如何使用多线程对共享变量进行加1和减1操作,并确保线程间的正确同步。具体包括:1) 如何通过`synchronized`关键字实现线程同步;2) 如何利用内部类让多个线程共享同一个变量。
1759

被折叠的 条评论
为什么被折叠?



