我想并行运行4个线程,但失败。Android中的多线程如何工作?
我一直在使用同步wait()
和notify()
CyclicBarrier
ThreadPoolExecutor
CountDownLatch
AsyncTask
和其他许多人尝试过,但没有管理并行运行的线程。
我们可以并行运行4个线程(即在android中同时运行)吗?怎么样?
注意:我正在使用音频流使用AudioRecord
和AudioTrack
API。
我想并行运行4个线程,但失败。Android中的多线程如何工作?
我一直在使用同步wait()
和notify()
CyclicBarrier
ThreadPoolExecutor
CountDownLatch
AsyncTask
和其他许多人尝试过,但没有管理并行运行的线程。
我们可以并行运行4个线程(即在android中同时运行)吗?怎么样?
注意:我正在使用音频流使用AudioRecord
和AudioTrack
API。
我们能否在机器人同时运行4线程并行即??
是的,你可以并行运行4线程。添加更多的线程通常会有所帮助,但是在某些点之后,它们会导致性能下降。但4个线程不会导致问题。
问题:我无法并行运行线程,即第一个线程运行: 4次,第2次第3次,仅第4次1次。如何使它运行(尝试使用 提到的线程,但不能并行运行所有线程)并行?
如果你的目标是简单地让所有的线程主动地处理,我建议在看的Java thread pools(和Executors更普遍)。
的Android支持多线程?如果是的话,多线程工作在 android?
是,Android支持多线程。实现它(比线程池和执行器等)的最优选的方式是AsyncTask
AsyncTasc允许您实现doInBackground()
,你的线程可以在其任务杀青了。这与您从Thread
获得的功能类似。
当你重写onPreExecute()
和onPostExecute()
,这是在UI线程两个执行真正的奇迹发生。这应该使您无法获得关于您的活动未附加的消息。
这answer包含AsyncTask
,可以让你开始一个小的代码示例。
而且,看看Handlers Android中
编辑 -我发现在我研究的是,记录,发送和接收音频都是相当互动preocesses,他们需要同步和IO资源。最好的解决方案可能是,您可以为每个操作创建单独的异步任务,以便每个操作都在其单独的异步任务中执行。
谢谢..但是当我尝试AsyncTask时,我失去了很多音频数据。即,我正在使用AsyncTask将音频语音数据发送到服务器,它将自己的时间发送给服务器。那时候我会放松应用端的语音数据。 –
虽然我还没有遇到任何Async任务的问题,但是如果你想使用并发线程,你可以看看线程池和执行程序。 –
我也试过。我每40ms记录音频数据16Kb。它花费时间来并行运行另一个线程。 –
您可以使用异步任务并行运行它们。
我已经试过这个..但它需要它自己的时间来执行。 N不帮我这..我会失去许多音频数据与AsyncTask –
@Taruni这应该是评论请! – swiftBoy
您可以详细说明问题所在吗? – Henry
@Henry我无法一次运行全部4个线程。如何实现这一目标? –