rt
一个线程里面有A(),B()两个方法,我现在两个方法同时调用了,然后,它就A方法执行一行,然后再执行B方法一行,然后A再执行一行,然后B再执行一行......
我AB两个方法里面操作了同一个对象,所以算法都被弄乱了,如何让它先执行完其中一个,再去执行另一个?
一个线程里面有A(),B()两个方法,我现在两个方法同时调用了,然后,它就A方法执行一行,然后再执行B方法一行,然后A再执行一行,然后B再执行一行......
我AB两个方法里面操作了同一个对象,所以算法都被弄乱了,如何让它先执行完其中一个,再去执行另一个?
解决方案 »
- MyEclipse代码编辑器的问题。
- 如何下载服务端的文件到客户端指定的目录?
- 请问我使用了jboss的连接池,还需要调用close方法吗?
- hibernate +struts2问题!!!
- 如何把java.sql.date 转成java.util.date
- 关于框架的书
- 使用struts标签 在<html:form中如何在提交时加入一个验证email的js?
- 晕!大家千万别买电子工业出版社的《J2EE编程指南》!!!会让人发疯的!!到处都是低级错误!!!
- 问一个JDBC的问题
- 初学hibernate一对多映射问题
- 关于struts2框架struts.xml位置的问题.
- Hibernate使用Ehcache二级缓存时的异常NoCacheRegionFactoryAvailableException
final Lock lock = new ReentrantLock();
final Condition notFull = lock.newCondition();
final Condition notEmpty = lock.newCondition(); final Object[] items = new Object[100];
int putptr, takeptr, count; public void put(Object x) throws InterruptedException {
lock.lock();
try {
while (count == items.length)
notFull.await();
items[putptr] = x;
if (++putptr == items.length) putptr = 0;
++count;
notEmpty.signal();
} finally {
lock.unlock();
}
} public Object take() throws InterruptedException {
lock.lock();
try {
while (count == 0)
notEmpty.await();
Object x = items[takeptr];
if (++takeptr == items.length) takeptr = 0;
--count;
notFull.signal();
return x;
} finally {
lock.unlock();
}
}
}
楼主自己说乱了吧?一个线程里面调用 A B 两个方法,必然只能先后串行的执行,不可能A一行B一行的。你是希望能做到两个线程分别在AB里面每次执行一行?还是希望怎么滴效果?
我在一个类里,写了AB两个方法,在A执行的时候,鼠标点击后,触发B执行,我断点试过,一下跳到A一下跳到B,这两个方法在一个类里面,应该是同一个线程在执行吧
在A()方法体里,若执行完 isAover = true;
在B()方法体里,在执行前 先判断iaAover 的值 根据iaAover 的值判断要不要执行B()方法