Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 生产者-消费者模式:唤醒UI线程_Android_Ios - Fatal编程技术网

Android 生产者-消费者模式:唤醒UI线程

Android 生产者-消费者模式:唤醒UI线程,android,ios,Android,Ios,如何实现生产者-消费者模式,后台线程作为生产者,UI线程作为消费者?在良好的C++中,我会使用互斥体、条件变量和标记,可能使用某种并发队列。生产者线程将把数据放入队列,锁定互斥锁,设置标志,解锁互斥锁,然后向条件变量发送信号 如何用UI线程实现类似的模式?谢谢。用户界面线程无法在您的控制下睡眠,因此没有直接的方法。老C++好吗?我想没有UI线程吧 第一种方法是有一个生产者线程和一个消费者线程,通过一个或类似的东西连接它们,并让消费者线程在UI线程上发布。但是,只有当消费者线程实际上有一些有意义的

如何实现生产者-消费者模式,后台线程作为生产者,UI线程作为消费者?在良好的C++中,我会使用互斥体、条件变量和标记,可能使用某种并发队列。生产者线程将把数据放入队列,锁定互斥锁,设置标志,解锁互斥锁,然后向条件变量发送信号


如何用UI线程实现类似的模式?谢谢。

用户界面线程无法在您的控制下睡眠,因此没有直接的方法。老C++好吗?我想没有UI线程吧

第一种方法是有一个生产者线程和一个消费者线程,通过一个或类似的东西连接它们,并让消费者线程在UI线程上发布。但是,只有当消费者线程实际上有一些有意义的任务要执行时,这才有意义,例如在一段时间内收集样本,这证明它可以独立运行等等

第二种方法是让生产者发布消息或直接将消息传递到UI线程,如果消费者没有任何繁重的UI阻塞任务要做,这将更加轻量级和合适


从iOS到Android,并发实现将有很大的不同。