该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-01
最后修改:2010-12-01
public class ThreadIncDec { private int j; public static void main(String[] args) { ThreadIncDec incDec = new ThreadIncDec(); Inc inc = incDec.new Inc(); Dec dec = incDec.new Dec(); for (int i = 0; i < 2; i++) { Thread t = new Thread(inc); t.start(); t = new Thread(dec); t.start(); } } //计数加一 private synchronized void inc() { j++; System.out.println(Thread.currentThread().getName() + "-inc:" + j); } //计数减一 private synchronized void dec() { j--; System.out.println(Thread.currentThread().getName() + "-dec:" + j); } //内部类实现的线程,线程对计数器加一 class Inc implements Runnable { public void run() { for (int i = 0; i < 100; i++) { inc(); } } } //内部类实现的线程,线程对计数器减一 class Dec implements Runnable { public void run() { for (int i = 0; i < 100; i++) { dec(); } } } } 下一篇关于java字符串反转 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-12-02
靠同步去加减,应该算是最基本也是最慢的方法了吧。
实际使用的时候考虑一下concurrent包的那堆原子数吧 |
|
返回顶楼 | |
发表时间:2010-12-02
IcyFenix 写道 靠同步去加减,应该算是最基本也是最慢的方法了吧。
实际使用的时候考虑一下concurrent包的那堆原子数吧 是的,最近正在研究,所以只发了最简单的,谢谢 |
|
返回顶楼 | |
发表时间:2010-12-02
atomInteger
|
|
返回顶楼 | |
发表时间:2010-12-02
coreymylife 写道 atomInteger
正解.不用你同步,api帮你搞定. |
|
返回顶楼 | |
发表时间:2010-12-02
i2534 写道 coreymylife 写道 atomInteger
正解.不用你同步,api帮你搞定. 这个还真没用过,谢谢,马上研究一下 |
|
返回顶楼 | |
发表时间:2010-12-02
coreymylife 写道 atomInteger
正解且是最好最简便方法!!! |
|
返回顶楼 | |
发表时间:2010-12-02
似乎是Thinking in Java里的一个例子。。。
|
|
返回顶楼 | |
发表时间:2010-12-02
bbflys 写道 似乎是Thinking in Java里的一个例子。。。 这个是我去一家公司的笔试题,好长时间没看过Think in java了 |
|
返回顶楼 | |
发表时间:2010-12-02
spring5365 写道 bbflys 写道 似乎是Thinking in Java里的一个例子。。。
这个是我去一家公司的笔试题,好长时间没看过Think in java了 如果没错,应该是华为吧!我记得我去的时候,他的题目一摸一样。 |
|
返回顶楼 | |