我越到了一个for循环的逻辑问题。我现在想在for循环里面执行一个线程,而线程里面又有一个执行的程序,我想当线程里面的程序执行完成以后,再循环下一次,如for(int i=0;i<10;i++)循环执行完程序后i+1。
解决方案 »
- 关于频繁更新UI,崩溃问题~~~~~
- srec.doxygen 这个文件是什么作用?
- android back
- 关于contentprovider中的openAssetFile(Uri uri, String mode)和openFile(Uri uri, String
- WebView隐藏元素Bug 绕不过去!
- AudioCommandThread::threadLoop中对应mLock.lock()的unlock的地方在哪里
- Android监听器问题-跪求高手指点为什么点击两次同一行打印的arg1的值不一样?
- android 使用 selector 出错
- Android系统能在任何嵌入式移动设备中运行吗?
- 大疆无人机二次开发小白急求前辈SDK二次开发指导
- 重写MediaController样式。。怎么做。。
- HelloWorld不显示出来
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");
}
}
直接循环执行本该在线程里run的东西就是了
1、全局变量:这种方法简单,但这种风格容易使全局变量泛滥。像这种局变的同步,可以不用提升到全局的层面上。但这种方法的确是实现起来最快的啊~~~双刃剑
2、做一个任务类:这种方法条理清晰,结构严谨,缺点是代码会比较多。。
以上两个方法都无法实现线程局部存储,这是上面两点共同的缺点3、启动线程,使用局部变量同步:这种方法的缺点是控制流复杂。优点就是可以使用线程局部存储,或者调用已经写好,不好修改,要求以线程方式启用的模块。以上都是用的Java的线程同步机制
具体实现需依项目实际选择。