![]() |
1
2
线程错误可能导致严重和微妙的问题。 假设你的系统有10个成员。另外一个用户登录到您的系统,应用程序将他添加到名册并增加成员计数;“同时”,另一个用户退出,应用程序将他从名册中删除并减少成员计数。 如果您没有正确处理线程,那么您的成员计数(应该是10)很容易是9、10或11, 你再也不能复制这个虫子了 . 所以小心点。 |
![]() |
2
1
你应该关心线程安全。例如,在Java中编写一个提供一些功能的servlet。容器将部署servlet的一个实例,当HTTP请求从客户端到达时,通过不同的TCP连接,每个请求都由一个单独的线程处理,该线程反过来将调用servlet。因此,可以从多个线程调用servlet。因此,如果它不是线程安全的,那么由于线程访问共享数据的数据损坏,错误的结果将返回给用户。 |
![]() |
3
1
它实际上取决于应用程序框架(在本例中我对此一无所知)以及Web服务器如何处理它。显然,任何一个好的Web服务器都将同时响应多个请求,因此它将使用多个线程进行操作。该Web服务器可能会针对所有这些请求发送到应用程序代码的单个实例,或者它可能会生成Web应用程序的多个实例,并且从不同时使用给定的实例。 即使应用服务器使用单独的实例,您的应用程序也可能有一些共享状态——例如,一个包含用户列表的数据库。在这种情况下,您需要确保可以从Web应用的多个线程/实例安全地访问状态。 当然,还有一种情况是在应用程序中显式地使用线程。在这种情况下,答案是显而易见的。 |
![]() |
4
1
你的 Web应用程序 几乎总是多线程的。即使您可能没有显式地使用线程。所以,要回答你的问题: 这很重要 . 怎么会这样?通常,Apache(或IIS)会同时提供多个请求,从多个线程调用您的Python程序多次。因此,您需要考虑您的程序同时在多个线程中运行,并相应地进行操作。 |
![]() |
5
1
(这太长了,无法对其他好答案添加评论。) 并发性问题(读:对共享状态的多个访问)是一组超级线程问题。(并发性问题)可以很容易地存在于“高于线程”的级别上,例如进程/服务器级别(在上面提到的情况下,全局变量是进程唯一值,如果存在多个进程,这反过来会导致不一致的视图/状态)。 必须注意分析数据一致性需求,然后实施软件以满足这些需求。我总是错误地站在安全的一边,只会在仔细分析的可以接受的地方降级。 但是,请注意,CPython只为Python代码执行只运行一个线程上下文(以获得真正的并发线程,您需要编写/使用C扩展),因此,虽然您可以在预期数据上获得一个竞争条件的形式,但不会得到(所有)相同类型的部分写入方案,并且可能会危及C/C++程序。但是,再一次。在一致视图方面出错。 有很多种 现有的 跨线程或进程访问全局原子的方法。使用它们。 |
![]() |
A. Shawkat · 获取请求不起作用 7 年前 |
![]() |
Yura · 无法链接引导。min.css和动态web app 7 年前 |
![]() |
jasonharper · 无互联网连接的WiFi连接设备的最佳实践 7 年前 |
![]() |
Thanh Dong · 在spring boot web应用程序中运行jar文件时,创建名为“ConfigurationPropertiesBindingPostProcessor”的bean时出错 7 年前 |
![]() |
Karim Sawma · react web app中缺少滚动条 7 年前 |
![]() |
Nathan · Flask API回调侦听器 7 年前 |
![]() |
David Artmann · Vaadin网格日期渲染器不适用 7 年前 |
![]() |
Hayden · 如何防止计数器的增量超过元素的高度? 7 年前 |