都这么说“加上synchronized关键字修饰的函数,在同一时刻内只能允许一个线程执行被synchronized修饰的函数,必须要等到这个线程执行完毕后,才允许其他线程执行…………
看了很多例子,还是不明白,有没有一个反例,就是如果不使用synchronized修饰了,结果会有什么不同。
这个是我举的例子:public class Demo extends Thread
{
public void run()
{
for (int i = 0; i < 10; i++)
System.out.print(i + " ");
}
public static void main(String[] args)
{
Demo D1 = new Demo();
Demo D2 = new Demo();
D1.start();
D2.start();
}
}
按照我的理解,应该先让D1(或D2)从1打印到9,然后再让D2(或D1)打印。结果却不是,而是轮流打印。麻烦指出。
看了很多例子,还是不明白,有没有一个反例,就是如果不使用synchronized修饰了,结果会有什么不同。
这个是我举的例子:public class Demo extends Thread
{
public void run()
{
for (int i = 0; i < 10; i++)
System.out.print(i + " ");
}
public static void main(String[] args)
{
Demo D1 = new Demo();
Demo D2 = new Demo();
D1.start();
D2.start();
}
}
按照我的理解,应该先让D1(或D2)从1打印到9,然后再让D2(或D1)打印。结果却不是,而是轮流打印。麻烦指出。
解决方案 »
- java基础问题
- java socket服务器端程序处理多线程问题
- 一个简单的问题:vector
- 求java版的中国象棋(单机版),进来都有分
- 未来 JAVA 的 GUI 开发人员会怎么样? 讨论者全有分
- 关于将16进制的字符串转化成字符串
- 求救:由于Comm通讯的底层接口获取的int型整数数据是C++写的,现在要用java调用C++的接口int型出现溢出,即怎么获取大于2147483648(c++可
- 求字符串处理的方法集合
- 调查+散分!!
- java中太多名词搞不懂了,有人能帮一下我吗?
- 菜鸟困惑:Java求质数算法
- httpclient返回302后,其location的值为./ 跳转出错,请大侠帮着看看是什么原因。
{
public void run()
{
synchronized(this)
{
System.out.println(" "+Thread.currentThread().getName());
for (int i = 0; i < 10; i++)
{
System.out.print(i + " ");
}
System.out.println();
}
}
public static void main(String[] args)
{
Demo D1 = new Demo();
new Thread(D1).start();
new Thread(D1).start();
//Demo D2 = new Demo();
//D1.start();
//D2.start();
}
}
public class Demo extends Thread {
public void run() {
synchronized (Demo.class) {
for (int i = 0; i < 10; i++)
System.out.println(this.getName() + " " + i + " ");
}
} public static void main(String[] args) {
Demo D1 = new Demo();
Demo D2 = new Demo();
D1.start();
D2.start();
}
}
两者结合体会一下比较好
线程A:计算s = a + b;
线程B:计算m = b + a;
如果线程AB在访问资源ab时,不加同步,有可能造成死锁...
1、你启动了两个线程,每个线程里面有一个for循环,出现轮流打印的原因是,cpu首先分配资源给了d1或d2,然后运行了一次输出,接着cup切换到了另个线程,又运行了一次输出,然后不断的切换
2、cpu分配时间是随即的,你把循环改大点,一定会出现各种结果,可能第一个线程循环了n次之后再切换给第二个线程。。
3、修改的方法,4楼是正解。
object 可以看作是 守卫员
object 的监视器 可以看作是 守卫手上那张唯一的通行证
线程 可以看作是 需要从这里过去的人