在web上使用这样的东西可以吗:(我的应用程序是在asp.net mvc上)
public static class DbUtil
{
public static int Insert(object o, string cs)
{
using (var conn = new SqlConnection(cs))
using (var cmd = conn.CreateCommand())
{
...
conn.Open();
我有一个静态计时器类,它将被任何网页调用,以计算每个页面需要多长时间才能构建。
我的问题是静态类是线程安全的吗?在我的示例中,并发用户会导致我的启动和停止时间出现问题吗?例如,一个不同的线程覆盖了我的start和stop值。
public static class Timer
{
private static DateTime _startTime;
private static DateTime _stopTime;
/// <summary>
/// Gets the amount of time taken in millisecon
我有几个简单的助手方法,我已经将它们放入了一个utils.cs类中。下面就是一个例子。我从一个asp.net控制器中调用它,这意味着可能有许多调用发生在多个线程上,大约在同一时间。
我意识到我这样做是因为resharper建议在类中使方法是静态的,但是我担心这可能是错误的,也许我应该在每个调用中更新Utils类。
有什么想法?
public class Utils
{
public static List<Speaker> FilterSpeakersByTenant(List<Speaker> inSpeakers, string tenant
我需要知道这样创建一个静态Regex对象是否安全:
public static Regex s_Regex_ExtractEmails = new Regex(@"\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}\b");
并从ASP.NET线程中静态调用它,如下所示:
s_Regex_ExtractEmails.Matches("my email is mail@email.com")
这会造成什么问题吗?
我这样做基本上是一种优化,这样Regex对象就可以被预编译和重用。
默认情况下,当通过多个线程访问非静态方法时,每个线程都有自己的变量实例,因此如果它们不包括公共变量,则使它们成为线程安全的。
另一方面,静态方法中的变量在线程之间共享,使得它们在默认情况下是非线程安全的。
比方说,我有一个类,没有任何静态变量或方法。
public class Profile {
private ConcurrentDictionary<int, int> cache =
new ConcurrentDictionary<int, int>();
public AddToCa
在单个请求中,我在不同线程中从会话中读取/写入对象,如下所示:
public class HomeController : Controller
{
public int Index()
{
Task.WaitAll(DoStuff(), DoMoreStuff());
var foo = Session["foo"] as Foo;
return foo.MyProperty;
}
public Task DoStuff()
{
return Task.Factory.S
我正在编写我的Servlet应用程序,并希望使用下面的静态方法,它将使x和y相乘。
public class Helper {
private Helper() {
throw new AssertError();
}
public static int mutltiply(int a, int b) {
int c = a*b;
return c;
}
}
我知道Servlets是多线程环境。从servlet调用这样的方法安全吗?
我是否应该将同步属性添加到此函数?我的音乐会是关于多线程下的c变量的值。
我是
所以我有一个非线程安全API (一些供应商软件),我们目前使用的方式是每个线程一个对象。也就是说,每一个线程都有:
Foo instance = new Foo();
然而,这似乎不适用于这个特定的库。它的一些非线程安全的部分看起来仍然是对头的,所以我假设这个库中包含一些静态值。在我们知道存在问题的几个点上,我们目前正在使用ReentrantLock在需要时锁定类。也就是。
public class Bar {
protected static final ReentrantLock lock = new ReentrantLock();
public void proces
我是java的新手,我想知道从静态方法返回一个对象是否可以?由于静态方法是在类上操作的。我在这里有点困惑。另外,如果有多个线程试图调用它,那该怎么办呢?
class Test
{
public static test(List<String> input) {
List<List<String>> res = new ... ;
// some code
return res;
}
}