java - 如何等待线程和处理程序初始化

标签 java android multithreading android-2.2-froyo

我正在编写一个应用程序。我遇到这样的场景,我必须创建两个线程,首先创建 thread1,然后创建 thread2。线程 1 必须发布到线程 2 的处理程序中。但由于系统速度很快,在创建线程 2 并初始化处理程序之前,线程 1 就开始将消息对象发布到线程 2。因此我面临着意想不到的行为。

请告诉我如何在线程 1 中等待线程 2 启动并初始化处理程序。我尝试了轮询机制,因为它会影响系统性能,因此此修复未被接受。

最佳答案

只需使用类似的东西:

// @ Thread 1
synchronized( someMonitor ) {
  someMonitor.wait( /* time? */ );
}

// @ Thread 2
synchronized( someMonitor ) {
  someMonitor.notify();
}

因此线程 1 将等待,直到线程 2 通知。我会在等待之前检查条件是否已设置。

关于java - 如何等待线程和处理程序初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7727009/

相关文章:

android - 将音频从 Android 流式传输到桌面应用程序

Android,ActionBar下的Progress Bar,并去除圆形进度

java - 线程 getName() 返回错误的名称

java - 使用正则表达式在 Java 中解析 Insert SQL 查询

java - JSP中的简单加密

java - 执行带有参数以 : error=2, 结尾的命令 系统找不到指定的文件

android - 注销并关闭 Android 中的所有 Activity

python - 需要提升权限的 Ubuntu 中的 MKL 多线程

c - 用 pthreads 杀死线程 - C

java - JOGL 和 Swing 的问题