Tag: 线程安全

为什么List <T>不是线程安全的?

从以下网站: http://crfdesign.net/programming/top-10-differences-between-java-and-c 不幸的是, List<>不是线程安全的(C#的ArrayList和Java的Vector是线程安全的)。 C#也有一个Hashtable ; 通用版本是: 是什么让List<T>不是线程安全的? .NET框架工程师的实现问题? 或者generics不是线程安全的?

我怎样才能使JUnittesting等待?

我有一个JUnittesting,我想等待一段时间,同步。 我的JUnittesting看起来像这样: @Test public void testExipres(){ SomeCacheObject sco = new SomeCacheObject(); sco.putWithExipration("foo", 1000); //WAIT FOR 2 SECONDS assertNull(sco.getIfNotExipred("foo")); } 我尝试了Thread.currentThread()。wait(),但它引发IllegalMonitorStateException(如预期)。 有一些技巧,或者我需要一个不同的显示器?

如何使应用程序线程安全?

我认为线程安全,特别是,它意味着它必须满足multithreading访问相同的共享数据的需要。 但是,这个定义似乎还不够。 任何人都可以列出的事情要做或照顾使应用程序线程安全 。 如果可能的话,就C / C ++语言给出一个答案。

Joda-Time DateTimeFormatter类的线程安全吗?

Joda-Time DateTimeFormatter类是否线程安全 ? 一旦我从DateTimeFormat.forPattern得到一个实例,它的各种parsing方法可以被多个线程调用吗? DateTimeFormatter的Javadocs没有提到线程的安全性。

find安装的PHP是线程安全的还是非线程安全的?

如何找出安装的PHP版本是线程安全的还是不安全的? 请注意,我不是问线程安全/非线程安全安装之间的区别。 我想知道什么是目前安装。

GCC中的函数静态variables是否是线程安全的?

在示例代码中 void foo() { static Bar b; … } 使用GCC编译是保证b将被创build和线程安全的方式初始化? 在gcc的手册页中,find了-fno-threadsafe-statics命令行选项: 不要发出额外的代码来使用C ++ ABI中指定的用于本地静态线程安全初始化的例程。 您可以使用此选项在不需要线程安全的代码中稍微减less代码大小。 这是否意味着,本地静态在GCC默认情况下是线程安全的? 那么没有理由明确地捍卫,例如与pthread_mutex_lock/unlock ? 如何编写可移植代码 – 如何检查编译器是否会添加其警卫? 还是closuresGCC的这个function更好?

Rails中的Thread.current 用法的安全性

对于将信息存储在Thread.current散列(例如,current_user,当前子域等等)中的做法,我总是有相互矛盾的观点。 该技术已被提出作为简化模型层(查询范围,审计等)内的后续处理的一种方式。 http://m.onkey.org/thread-safety-for-your-rails http://rails-bestpractices.com/posts/47-fetch-current-user-in-models 为什么我的线程variables在Rails中间歇性的? 替代在Rails的API包装中使用Thread.current Thread.current []值和类级别属性是否安全在rails中使用? 许多人认为这种做法是不可接受的,因为它打破了MVC模式。 其他人则对这种方法的可靠性/安全性表示担忧,我的两部分问题集中在后一方面。 是否保证Thread.current散列在其整个周期中只有一个响应是私有的? 我明白,一个线程,在响应结束时,可能会被移交给其他传入的请求,从而泄漏存储在Thread.current任何信息。 在响应结束之前清除这些信息(例如,通过从控制器的after_filter执行Thread.current[:user] = nil )是否足以防止这种安全漏洞? 谢谢! 朱塞佩

Python的字典中的线程安全

我有一个掌握字典的课程 class OrderBook: orders = {'Restaurant1': None, 'Restaurant2': None, 'Restaurant3': None, 'Restaurant4': None} @staticmethod def addOrder(restaurant_name, orders): OrderBook.orders[restaurant_name] = orders 我正在运行4个线程(每个餐厅一个)调用方法OrderBook.addOrder 。 这里是每个线程运行的function: def addOrders(restaurant_name): #creates orders … OrderBook.addOrder(restaurant_name, orders) 这是安全的,还是我必须在调用addOrder之前使用锁?

从另一个同步方法调用同步方法是否安全?

如果一个同步方法调用另一个同步方法,它是线程安全的吗? void synchronized method1() { method2() } void synchronized method2() { }

线程安全的unit testing?

我已经写了一个类和许多unit testing,但是我没有使它安全。 现在,我想让类的线程安全,但为了certificate它并使用TDD,我想在重新开始之前编写一些失败的unit testing。 任何好办法做到这一点? 我的第一个想法是创build一对夫妇的线程,使他们都以不安全的方式使用这个类。 做足够多的线程足够多的时间,我一定会看到它断裂。