Thanks Romain for quick response.

Jayesh

On Fri, Jun 26, 2009 at 10:54 PM, Romain Guy <[email protected]> wrote:

>
> Hi,
>
> It's a bug and your workaround is correct. I'll fix this right away.
>
> On Fri, Jun 26, 2009 at 9:27 AM, Jayesh Salvi<[email protected]>
> wrote:
> > Hi,
> >
> > I am replacing the multithreaded code in my app with the AsyncTask from
> 1.5.
> > I found that two AsyncTasks do not work concurrently. I investigated a
> bit
> > and found a workaround; I would like second opinion if my solution is
> right.
> > OR if there is a better solution.
> >
> > AsyncTask allows the app to do a task on a thread other than the UI
> thread.
> > But IIUC, it only provides a single thread on which a queue of tasks is
> > performed. Therefore, if one of the task is to wait on some event (n/w or
> > sleep) then all other tasks will wait for it to finish.
> >
> > To elaborate with the coding example:
> > <code>
> >
> > public class MyTask extends AsyncTask<...>
> > { ... }
> >
> > // On the UI thread execute two tasks
> > MyTask mt1 = new MyTask().execute(args);
> >
> > MyTask mt2 = new MyTask().execute(args);
> >
> > </code>
> >
> > In the above code both the execute calls will return immediately and free
> up
> > the UI thread; however mt1 will be executed first and mt2 will have to
> wait
> > until mt1 finishes.
> >
> > Thanks to the android's open source, we can see implementation of
> AsyncTask.
> >
> http://google.com/codesearch/p?hl=en&sa=N&cd=2&ct=rc#uX1GffpyOZk/core/java/android/os/AsyncTask.java&q=lang:java%20AsyncTask
> >
> > I copied AsyncTask.java as UserTask.java in my project and changed the
> value
> > of CORE_POOL_SIZE to 5. This makes the thread pool to use 5 threads to
> > multiplex the queued AsyncTasks. This indeed solved my problem. Now if
> mt1
> > blocks on a sleep; mt2 goes ahead and finishes its job.
> >
> > Here are some questions for those who know more about AsyncTask
> > implementation:
> >
> > Is this work-around right?
> > If yes, can the CORE_POOL_SIZE be made configurable in future, via an API
> > call?
> > Is there a solution by which multiple thread pools can be used?
> >
> > Let me add that, I am aware that this is a phone and not a web server - I
> am
> > not using 10s of threads to do network I/O. However a single thread is
> not
> > sufficient for my app either.
> >
> > Please let me know. Thanks in advance.
> >
> > Jayesh
> >
> > >
> >
>
>
>
> --
> Romain Guy
> Android framework engineer
> [email protected]
>
> Note: please don't send private questions to me, as I don't have time
> to provide private support.  All such questions should be posted on
> public forums, where I and others can see and answer them
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to