import android.app.Activity;import android.os.Bundle;import android.os.ConditionVariable;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {ConditionVariable mCV = new ConditionVariable();Button unLock;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);unLock = (Button) findViewById(R.id.btn_unlock);new Thread() {public void run() {try {for (int i = 0; i < 5; i++) {Thread.sleep(1000);System.out.println(Thread.currentThread().getId() + ",count=" + i);if (i == 3) {mCV.close();//重置阻塞条件,当再次运行到block()时 仍会再次阻塞; 若不重置,则不再阻塞mCV.block();//当前线程阻塞,直到open() System.out.println("block");}if (i == 4) {mCV.close();mCV.block(3000);//当前线程阻塞,直到open() 或 超时System.out.println("block 3 seconds");i = -1;}}} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}};}.start();unLock.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {mCV.open(); //打开即唤醒 阻塞线程}});}}

更多相关文章

  1. android IntentService的深入理解
  2. Android(安卓)anr异常测试
  3. FFmpeg In Android(安卓)- tutorial-4-Spawning Threads创建线程
  4. Google Android's Gingerbread Update Coming Soon
  5. Android(安卓)实现MD5加密
  6. Android学习笔记(6)————Android的线程与进程
  7. android jni 多线程编程 join thread
  8. Android(安卓)实现MD5加密
  9. Android(安卓)欢迎界面设置

随机推荐

  1. Android界面基本属性
  2. Android消息总线LiveDataBus
  3. Android(安卓)译文:Android中糟糕的Async
  4. 关于visibility的属性值visible,invisibl
  5. Android(安卓)运行底层linux外部命令的实
  6. Android设备与外接U盘实现数据文件夹拷贝
  7. Android(安卓)APK反编译查看源码及资源文
  8. Android中音乐文件的信息详解【安卓源码
  9. Android(安卓)4.4关机流程
  10. 赵雅智_android短信窃听及android短信源