标签: thread-safety

Threadsafe vs re-entrant

最近,我问了一个问题,标题是"malloc线程安全吗?" 在里面我问道,"malloc是否重新进入?"

我的印象是所有重入者都是线程安全的.

这个假设是错的吗?

c thread-safety reentrancy

84
推荐指数
3
解决办法
4万
查看次数

对于不同的密钥,HashMap是否是线程安全的?

如果我有两个多线程访问HashMap,但保证他们永远不会同时访问同一个密钥,那还能导致竞争条件吗?

java multithreading hashmap thread-safety

80
推荐指数
4
解决办法
5万
查看次数

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

如果synchronized方法调用另一个synchronized方法,它是否是线程安全的?

void synchronized method1() {
     method2()
}

void synchronized method2() {
}
Run Code Online (Sandbox Code Playgroud)

java thread-safety

78
推荐指数
2
解决办法
3万
查看次数

在rails中使用Thread.current []的安全性

我对在Thread.current哈希中存储信息的实践(例如,current_user,当前子域等)持续存在冲突的看法.已经提出该技术作为简化模型层内的后续处理的方法(查询范围,审计等).

许多人认为这种做法是不可接受的,因为它破坏了MVC模式.其他人对该方法的可靠性/安全性表示担忧,而我的两部分问题则侧重于后一方面.

  1. Thread.current在整个周期中,散列是否保证可用且对一个且仅一个响应是私有的?

  2. 据我所知,在响应结束时,一个线程可能会被移交给其他传入的请求,从而泄漏存储在其中的任何信息Thread.current.在响应结束之前清除此类信息(例如,通过Thread.current[:user] = nil从控制器执行after_filter)是否足以防止此类安全漏洞?

谢谢!朱塞佩

ruby-on-rails thread-safety

78
推荐指数
4
解决办法
2万
查看次数

查找已安装的PHP是线程安全还是非线程安全?

如何确定已安装的PHP版本是线程安全还是线程安全?

请注意,我不是要求线程安全/非线程安全安装之间的区别.我想知道目前安装的是什么.

php iis thread-safety

77
推荐指数
4
解决办法
4万
查看次数

Android - 停止线程的最佳和安全的方法

我想知道在Android中阻止线程的最佳方法是哪种.我知道我可以使用AsyncTask而不是它,并且有一种cancel()方法.我必须Thread在我的情况下使用s.这是我正在使用的方式Thread:

Runnable runnable = new Runnable() {
        @Override
        public void run() {
            //doing some work
        }
    };
new Thread(runnable).start();
Run Code Online (Sandbox Code Playgroud)

那么,有没有人知道哪个是阻止线程的最佳方法?

android thread-safety

76
推荐指数
4
解决办法
16万
查看次数

如何进行JUnit测试等待?

我有一个JUnit测试,我希望等待一段时间,同步.我的JUnit测试看起来像这样:

@Test
public void testExipres(){
    SomeCacheObject sco = new SomeCacheObject();
    sco.putWithExipration("foo", 1000);
    //WAIT FOR 2 SECONDS
    assertNull(sco.getIfNotExipred("foo"));
}
Run Code Online (Sandbox Code Playgroud)

我尝试了Thread.currentThread().wait(),但它抛出了IllegalMonitorStateException(如预期的那样).是否有一些技巧,或者我需要一个不同的显示器?

java junit thread-safety

76
推荐指数
7
解决办法
8万
查看次数

如何创建运行STA线程的任务(TPL)?

使用Thread非常简单

 Thread thread = new Thread(MethodWhichRequiresSTA);
 thread.SetApartmentState(ApartmentState.STA);  
Run Code Online (Sandbox Code Playgroud)

如何使用WPF应用程序中的任务完成相同的操作?这是一些代码:

Task.Factory.StartNew
  (
    () => 
    {return "some Text";}
  )
   .ContinueWith(r => AddControlsToGrid(r.Result));  
Run Code Online (Sandbox Code Playgroud)

我收到了一个InvalidOperationException

调用线程必须是STA,因为许多UI组件都需要这个.

c# wpf multithreading thread-safety task-parallel-library

72
推荐指数
2
解决办法
5万
查看次数

71
推荐指数
7
解决办法
6万
查看次数

烧瓶中的全局变量是否安全?如何在请求之间共享数据?

在我的应用程序中,通过发出请求来更改公共对象的状态,响应取决于状态.

class SomeObj():
    def __init__(self, param):
        self.param = param
    def query(self):
        self.param += 1
        return self.param

global_obj = SomeObj(0)

@app.route('/')
def home():
    flash(global_obj.query())
    render_template('index.html')
Run Code Online (Sandbox Code Playgroud)

如果我在我的开发服务器上运行它,我希望得到1,2,3等等.如果同时向100个不同的客户提出请求,可能出现问题吗?预期的结果是100个不同的客户端每个都看到1到100之间的唯一数字.或者会发生这样的事情:

  1. 客户端1查询.self.param增加1.
  2. 在可以执行return语句之前,线程切换到客户端2. self.param再次递增.
  3. 线程切换回客户端1,然后客户端返回数字2,比如说.
  4. 现在线程移动到客户端2并返回他/她的数字3.

由于只有两个客户端,预期结果为1和2,而不是2和3.跳过了一个数字.

当我扩展我的应用程序时,这会发生吗?我应该看一下全局变量的替代方案?

python thread-safety flask

70
推荐指数
4
解决办法
2万
查看次数