各位大大 synchronized(object o){}可以保护单CPU运行多线程时的公共代码段 但是多CPU的时候好象就不行了 那么多CPU的情况下这个方法还能用吗
解决方案 »
- XML validation disabled 内的信息错误?是哪里出错了?怎么改?
- HibernateTemplate插入数据失败!急!!!
- 直观显示带有数据的进度条-快逸报表的实现
- jsvalidatetion验证框架几个奇怪的现象?
- www.java99.com开站一天,已经有朋友给出建议了,我近几天会改进的,请大家继续关注
- WebLogic8.1怎么启动不了呢?
- 以下正则表达式是 什么意思
- 熟悉struts + hibernate朋友麻烦进来
- 我的java 怎么编译不过去了?(菜鸟送分了!!!高手快来!!!)
- 大虾:问一个关于基于UDP协议的数据包的发送问题,谢谢!
- 问一个getSession()的问题
- 如果在java和c++进程间传递数据
class MyThreadTest
{
public static void main(String[] args){
ThreadTest tt = new ThreadTest();
new Thread(tt).start();
new Thread(tt).start();
new Thread(tt).start();
new Thread(tt).start();
}
}class ThreadTest implements Runnable
{
int i = 100;
Object o = new Object();
public void run(){
while(i>0){
synchronized(o){
try{
Thread.sleep(10);
System.out.println("出来吧~~"+Thread.currentThread().getName()+" "+i);
i--;
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
synchronized (o) {
try {
Thread.sleep(10);
System.out.println("出来吧~~" + Thread.currentThread().getName() + " " + i);
i--;
} catch (Exception e) {
e.printStackTrace();
}
}
}
ThreadTest tt = new ThreadTest();
new Thread(tt).start();
new Thread(tt).start();
new Thread(tt).start();
new Thread(tt).start();这个地方我把后面三个new Thread(tt).start();删掉 结果是到1截止
synchronized (o) {
if (0 == i) {
System.out.println("出来吧~~" + Thread.currentThread().getName() + " " + i);
}
while (i > 0) { try {
Thread.sleep(10);
System.out.println("出来吧~~" + Thread.currentThread().getName() + " " + i);
i--;
} catch (Exception e) {
e.printStackTrace();
}
}
}
}