当前位置: 代码迷 >> Android >> for循环有关问题
  详细解决方案

for循环有关问题

热度:41   发布时间:2016-05-01 17:41:47.0
求助 for循环问题
我越到了一个for循环的逻辑问题。我现在想在for循环里面执行一个线程,而线程里面又有一个执行的程序,我想当线程里面的程序执行完成以后,再循环下一次,如for(int i=0;i<10;i++)循环执行完程序后i+1。
 

------解决方案--------------------
做一个任务类 创建一个集合,集合添加任务进去,没执行一个任务,集合删除当前任务。
------解决方案--------------------
final Object object=new Object();
for (int i = 0; i < 7; i++){
synchronized (object){
new Thread(){
public void run(){
synchronized (object){
try{
sleep(100);
}catch (InterruptedException e){
e.printStackTrace();
}
System.out.println(System.currentTimeMillis()+"aaaaa");
object.notifyAll();
}
}
}.start();
object.wait();
System.out.println(System.currentTimeMillis()+"bbbbb");
}
}
------解决方案--------------------
方法解读:
1、全局变量:这种方法简单,但这种风格容易使全局变量泛滥。像这种局变的同步,可以不用提升到全局的层面上。但这种方法的确是实现起来最快的啊~~~双刃剑
2、做一个任务类:这种方法条理清晰,结构严谨,缺点是代码会比较多。。
以上两个方法都无法实现线程局部存储,这是上面两点共同的缺点

3、启动线程,使用局部变量同步:这种方法的缺点是控制流复杂。优点就是可以使用线程局部存储,或者调用已经写好,不好修改,要求以线程方式启用的模块。

以上都是用的Java的线程同步机制
具体实现需依项目实际选择。
------解决方案--------------------
探讨
如果要等里面东西执行完,才继续下一步,那又何必用线程呢?
直接循环执行本该在线程里run的东西就是了
  相关解决方案