android多线程3
来源:互联网 发布:怎么域名注册 编辑:程序博客网 时间:2024/05/02 14:51
模拟多个线程之间的交互
主线程用来更新UI,主线程有默认的消息队列。
线程是通过消息机制来通信的。Message、MessageQueue、Handler、Looper。
public class MyThreads {
private Handler handler1;
private Handler handler2;
public void run(){
run1();
run2();
}
private void run1(){
new Thread(new Runnable() {
@Override
public void run() {
//获得消息队列引用及其循环
Looper.prepare();
//获得消息处理实例
handler1=new Handler(){
//等待线程2计算完成发消息给线程1
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==0x01){
t1();
Message msg1=Message.obtain();
Bundle data=new Bundle();
data.putString("yes","线程1计算完毕");
msg1.setData(data);
handler2.sendMessage(msg1);
}
}
};
Looper.loop();
}
}).start();
}
private void run2(){
new Thread(new Runnable() {
@Override
public void run() {
//获得消息队列引用及其循环
Looper.prepare();
//获得消息处理实例
handler2=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bundle bundle=new Bundle();
if(msg.getData().getString("yes")=="线程1计算完毕"){
Log.i("yes", "线程1计算完毕");
}
}
};
t2();
//线程2发送消息给线程1
Message msg=Message.obtain();
msg.what=0x01;
handler1.sendMessage(msg);
Looper.loop();
}
}).start();
}
private void t1(){
for(int i=0;i<50;i++){
try {
Thread.sleep(1000);
Log.i("线程1", i+"<<<<<<<");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private void t2(){
for(int i=100;i<150;i++){
try {
Thread.sleep(1000);
Log.i("线程2", i+"<<<<<<<");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
- android多线程下载3
- android多线程3
- android 多线程3:Timer
- Android 多线程
- Android多线程
- Android 多线程
- Android 多线程
- Android 多线程
- Android多线程
- android 多线程
- android多线程
- android 多线程
- Android多线程
- android 多线程
- android多线程
- Android多线程
- android 多线程
- Android多线程
- 乐淘网毕胜:电商泡沫,蓝海变红海
- [转载]IOS在当前程序中调用任意的第三方程序,类似调
- android多线程2
- 杭电acm2027统计元音
- UIViewController
- android多线程3
- 用正则表达式解析XML文档
- 大数乘法C实现
- android broadcast
- IAT HOOK
- zoj 1027 - Human Gene Functions
- ACM-专题总揽
- android 应用之短信拦截代码结构
- Python(三):使用Apache运行Python程序