java多线程调用一个方法的问题
打个比方有这样一个方法publicvoidpush(charc){data[index]=c;index++;}有可能第一个线程执行到data[index]=c的时候,c...
打个比方有这样一个方法
public void push(char c) {
data[index]=c;
index++;
}
有可能第一个线程执行到data[index]=c的时候,cpu便切换到第2个线程执行data[index]=c;
我的问题是
1.为什么线程不把这个方法里的所有语句都执行完再切换到别的线程呢?
2.是不是采用synchronized就可以避免这种情况?
3.有没有别的方法可以解决这种问题? 展开
public void push(char c) {
data[index]=c;
index++;
}
有可能第一个线程执行到data[index]=c的时候,cpu便切换到第2个线程执行data[index]=c;
我的问题是
1.为什么线程不把这个方法里的所有语句都执行完再切换到别的线程呢?
2.是不是采用synchronized就可以避免这种情况?
3.有没有别的方法可以解决这种问题? 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询