我正在尝试并行运行 4 个线程,但失败了。
我尝试过使用同步wait()
和notify()
CyclicBarrier
ThreadPoolExecutor
CountDownLatch
AsyncTask
许多其他方法,但没有管理并行运行线程。
我们可以并行运行 4 个线程(即在 android 中同时运行)吗?如何?
注意:我正在使用AudioRecord
和AudioTrack
API 处理音频流。
我正在尝试并行运行 4 个线程,但失败了。
我尝试过使用同步wait()
和notify()
CyclicBarrier
ThreadPoolExecutor
CountDownLatch
AsyncTask
许多其他方法,但没有管理并行运行线程。
我们可以并行运行 4 个线程(即在 android 中同时运行)吗?如何?
注意:我正在使用AudioRecord
和AudioTrack
API 处理音频流。
我们可以在Android中同时运行4个线程吗?
是的,您可以并行运行 4 个线程。添加更多线程通常会有所帮助,但在某些时候,它们会导致一些性能下降。但是 4 个线程不会引起问题。
问题:我无法并行运行线程,即第 1 线程运行:4 次,第 2、第 3、第 4 次只有 1 次。如何使其并行运行(尝试使用提到的线程但未成功运行所有线程并行)?
如果您的目标只是让所有线程主动处理,我建议查看 Java线程池(以及更普遍的Executors )。
android支持多线程?如果是的话,多线程在android中是如何工作的?
是的,Android 支持多线程。最优选的实现方式(除了线程池和执行器)是AsyncTask
AsyncTask允许您实现doInBackground()
,您的线程可以在其中完成任务。这类似于您从中获得的功能Thread
。
真正的魔法发生在您覆盖onPreExecute()
and时onPostExecute()
,它们都在 UI 线程上执行。这应该可以防止您收到有关您的活动未附加的消息。
这个答案包含一个小代码示例AsyncTask
,可以帮助您入门。
另外,看看Android中的处理程序
编辑——我在研究过程中发现,录制、发送和接收音频都是非常互动的过程,它们需要同步和 IO 资源。最好的解决方案可能是,您可以为每个操作创建单独的 AsyncTask,以便每个操作在其单独的 AsyncTask 中执行。