Android 异步任务和任务的串行执行

Android 异步任务和任务的串行执行,android,multithreading,android-asynctask,executor,Android,Multithreading,Android Asynctask,Executor,我有一个项目在线程方面有一些困难的要求。我的执行流程处理视频的编码和解码、将此视频包装成另一种视频格式、发送套接字等 对于管道的每个功能,我基本上都有一系列任务,这些任务被编码为asyctask。这些任务完成后,会向侦听器触发事件。执行是串行的,以确保正在处理的视频分组不会无序执行,从而不会引入伪影 当我运行管道时,系统会在几分钟内变得不稳定、滞后和冻结 对于每一组任务,使用串行执行器执行多个异步任务,而不是使用多个异步任务,每个作业运行一个大型异步任务(作业是管道的开始到结束流)是否更有效?我

我有一个项目在线程方面有一些困难的要求。我的执行流程处理视频的编码和解码、将此视频包装成另一种视频格式、发送套接字等

对于管道的每个功能,我基本上都有一系列任务,这些任务被编码为asyctask。这些任务完成后,会向侦听器触发事件。执行是串行的,以确保正在处理的视频分组不会无序执行,从而不会引入伪影

当我运行管道时,系统会在几分钟内变得不稳定、滞后和冻结


对于每一组任务,使用串行执行器执行多个异步任务,而不是使用多个异步任务,每个作业运行一个大型异步任务(作业是管道的开始到结束流)是否更有效?我应该考虑自定义执行器吗?串行执行器是否会在线程池执行器内部生成多个线程,或者我的所有异步任务都在单个线程上运行,这可能是不稳定的问题吗?

除非您确实需要在ui线程上回调,否则您可能根本不需要异步任务如果您从其他异步任务调用异步任务,你创建了很多线程。您应该从UI线程调用第一个AsyncTask,获取答案,然后再从UI线程调用下一个AsyncTask,ThreadPoolExecutor呢?我想你是对的,线程池是适合我这种情况的最佳构造。谢谢。除非您确实需要在ui线程上进行回调,否则您可能根本不需要asynctasks。如果您从其他AsyncTask调用AsyncTask,则会创建大量线程。您应该从UI线程调用第一个AsyncTask,获取答案,然后再从UI线程调用下一个AsyncTask,ThreadPoolExecutor呢?我想你是对的,线程池是适合我这种情况的最佳构造。谢谢