我最近在接受采访时提到了这个问题.
我回答说如果交错出错就会发生死锁,但是访问者坚持认为可以编写一个总是会陷入死锁的程序而不管交错.
我们可以写这样的程序吗?你能指点我这样的示例程序吗?
在以下示例中,单击"提交"按钮时,静态变量Count的值将递增.但这个操作线程安全吗?是否正在使用Appliation对象进行此类操作?这些问题也适用于Web表单应用程序.
单击"提交"按钮时,计数似乎总是增加.
查看(剃刀):
@{
Layout = null;
}
<html>
<body>
<form>
<p>@ViewBag.BeforeCount</p>
<input type="submit" value="Submit" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.BeforeCount = StaticVariableTester.Count;
StaticVariableTester.Count += 50;
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
静态类:
public class StaticVariableTester
{
public static int Count;
}
Run Code Online (Sandbox Code Playgroud)