1。当多个线程共享数据时,如何保持数据的一致性,也就是说如何防止一个线程对共享数据仅仅进行了部分操作就退出的情况出现?
2。如果我把下面这段代码放到多线程中:
  public void push (char c)
{
    data[idx] = c;
    idx++;
}
如果一个线程刚执行完push方法中的data[idx] = c;语句,CPU便切换到了另外一个线程上执行push方法;第二个线程将覆盖掉第一个线程执行的data[idx] = c;语句的结果,我要如何做才能防止这种情况的发生?  谢谢各位大侠!!