Android-HttpClient和多线程

Android-HttpClient和多线程,android,httpclient,Android,Httpclient,我有一个应用程序,它使用apache的HttpClient获取网站。它有两个线程-UI线程(用户可以在其中命令下载子页面),另一个线程每x秒通过使用HttpPost下载来刷新主页。 在重新加载期间,当用户开始下载另一个页面时(我对两个查询使用相同的DefaultHttpClient),似乎存在一些同步问题(查询启动后立即结束,出现套接字错误)。重要的是页面需要cookies(用户有自己的会话)。 我的问题是: 我应该使用一个HttpClient和一个查询队列,而不让它们同时发生吗? 或者每个线程

我有一个应用程序,它使用apache的HttpClient获取网站。它有两个线程-UI线程(用户可以在其中命令下载子页面),另一个线程每x秒通过使用HttpPost下载来刷新主页。 在重新加载期间,当用户开始下载另一个页面时(我对两个查询使用相同的DefaultHttpClient),似乎存在一些同步问题(查询启动后立即结束,出现套接字错误)。重要的是页面需要cookies(用户有自己的会话)。 我的问题是: 我应该使用一个HttpClient和一个查询队列,而不让它们同时发生吗? 或者每个线程都应该有自己的HttpClient,并且应该有公共上下文? 或者有没有其他方法可以消除这个错误


我还想问您是否知道比JSoup更快的HTML解析器。我同意,这很快,但也许有更好的方法?

每个线程都应该有HTTPClient。如果您正在执行任何常见任务(可能有危险)。 为了保证线程安全,您应该将同步块放在方法级别或有公共任务要做的地方


建议:在使用线程时,尽量将任务分开。如果您有一些公共任务,请使用synchronized block

您应该为每个线程使用HTTPClient。如果您正在执行任何常见任务(可能有危险)。 为了保证线程安全,您应该将同步块放在方法级别或有公共任务要做的地方


建议:在使用线程时,尽量将任务分开。如果您有一些常见任务,请使用synchronized block

您可以通过指定线程安全的客户端管理器使
HttpClient线程安全。(
Threadsafe
,意思是两个或多个线程可以与其交互,而不会收到上述错误消息)


通过指定线程安全的客户端管理器,可以使HttpClient线程安全。(
Threadsafe
,意思是两个或多个线程可以与其交互,而不会收到上述错误消息)


我使用异步任务-问题是同步…我使用异步任务-问题是同步。。。