求线程不安全的例子或者说没哟同步  随便什么例子  
只要线程不安全也就是错误的代码 谢谢 

解决方案 »

  1.   

    http://blog.csdn.net/mabaolin/archive/2007/06/15/1653178.aspx
    看了这个博客 你就知道原来线程不安全 是这么简单
    随便写一个都是线程不安全的
      

  2.   

    Brian同步规则:如果你正在写一个变量,它可能在接下来被另一个线程读取,或者正在读取一个上一次已经被一个线程写过的变量,那么你就必须使用同步,并且,读写线程都必须使用相同的监视器锁同步
    接下来你只要在满足同步要求的时候不使用锁机制,那么这个代码就已经错了,除非你可以用其他的方式来避免同步
      

  3.   

    这个例子在《Java 核心技术》上面就有,作者是以一个转账的例子来说明局部变量是如何被侵蚀掉的。
      

  4.   

    比如一个数据,xa和b的作用都是使x+1.他们要读了x的数值,然后计算,再把结果覆盖掉原x值步骤:
    1.a读x
    2.b读x
    3.a写x
    4.b写x最后结果x只+1,这就是线程不安全。线程安全的做法是a或者b读写之间不能有其他人来访问这个数据。
      

  5.   

    public class TestUnsafeThread extends Thread{

    static int allval=49;
       //
    public   void  run() {
    allval++;

        try {
            Thread.sleep(0);
            
         System.out.println("allval 的值为:"+allval);
        }
        catch (InterruptedException ie) {
            ie.printStackTrace();
        }
    }
         
    public static void main(String[] args) {

    Thread t1=new Thread (new TestUnsafeThread());
    Thread t2=new Thread (new TestUnsafeThread());

    t1.start();
    t2.start();

       
    }}
    执行结果有两种不同的  50  51  或 51  51这就是一种线程不安全的情况吧! 坦白的说 我也没有太弄懂,继续研究吧!
      

  6.   


    public class Test implements Runnable {
    public int flag = 1;
    static Object o1 = new Object(), o2 = new Object();
    public void run() {
    System.out.println("flag=" + flag);
    if(flag == 1) {
    synchronized(o1) {
    try {
    Thread.sleep(500);
    } catch (Exception e) {
    e.printStackTrace();
    }
    synchronized(o2) {
    System.out.println("1");
    }
    }
    }
    if(flag == 0) {
    synchronized(o2) {
    try {
    Thread.sleep(500);
    } catch (Exception e) {
    e.printStackTrace();
    }
    synchronized(o1) {
    System.out.println("0");
    }
    }
    }
    }

    public static void main(String[] args) {
    Test td1 = new Test();
    Test td2 = new Test();
    td1.flag = 1;
    td2.flag = 0;
    Thread t1 = new Thread(td1);
    Thread t2 = new Thread(td2);
    t1.start();
    t2.start();

    }
    }"随便什么例子"  就随便给你一吧,不知道是不是你想要的
    这是个死锁的问题