线程安全意味着什么?

时间:2011-03-11 08:42:16

标签: ruby thread-safety

我一直在阅读一些关于ruby中多线程编程的博客。我注意到的是作者倾向于使用thread-safety这个词。这是什么意思?为什么编写线程安全代码很重要?

1 个答案:

答案 0 :(得分:7)

如果你有一个资源(比方说一个全局的书籍列表),你有两个运行的线程可以修改这个列表。在很多情况下,列表的数据会不一致。

  • (线程A读取书籍并显示其数据)
  • (线程B在线程A使用数据时删除同一本书)
  • (主题A现在想要向本书添加一些信息)

因此,您必须使代码线程安全,以便任何时候只有一个线程可以对书籍列表具有写入权限。

SpyrosP提到的

死锁发生在线程A阻塞列表进行写入并等待线程B在列表中添加数据时。因为两个线程都会等待彼此做某些他们无法做的事情。只有在未正确实现线程安全机制时才会发生这种情况。