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