草庐IT

c++ - 我可以将哪些同步原语用于 clone(2) (C/C++)?

在使用Linux的clone(2)线程时,我可以使用哪些C++同步原语?我特别不能使用pthreads,因为我正在构建一个共享库,用不同的定义替换许多pthreads的函数调用,但我需要某种互斥量。编辑:我可能说得太早了,我查看了pthread文档,他们使用futex(2)来实现这些原语。我假设我也会这样做? 最佳答案 你可以使用futexhttp://en.wikipedia.org/wiki/Futex这是基于futex的简单互斥锁和条件变量http://locklessinc.com/articles/mutex_cv_fut

c++ - 我可以将哪些同步原语用于 clone(2) (C/C++)?

在使用Linux的clone(2)线程时,我可以使用哪些C++同步原语?我特别不能使用pthreads,因为我正在构建一个共享库,用不同的定义替换许多pthreads的函数调用,但我需要某种互斥量。编辑:我可能说得太早了,我查看了pthread文档,他们使用futex(2)来实现这些原语。我假设我也会这样做? 最佳答案 你可以使用futexhttp://en.wikipedia.org/wiki/Futex这是基于futex的简单互斥锁和条件变量http://locklessinc.com/articles/mutex_cv_fut

linux - 实现提供比线程更好的隔离但性能相当的 Linux 并发原语是否可行?

考虑以下应用程序:网络搜索服务器在启动时根据从磁盘读取的数据创建大型网页内存索引。一旦初始化,内存中的索引就不能被修改,并且会启动多个线程来为用户查询服务。假设服务器被编译为native代码并使用操作系统线程。现在,线程模型没有提供线程之间的隔离。有缺陷的线程或任何非线程安全代码可能会损坏索引或损坏由其他线程分配并在逻辑上属于其他线程的内存。此类问题很难检测和调试。理论上,Linux允许实现更好的隔离。一旦索引被初始化,它占用的内存就可以被标记为只读。线程可以替换为共享索引(共享内存)但除此之外具有单独堆并且不能相互破坏的进程。硬件和操作系统会自动检测到非法操作。不需要互斥锁或其他同步

linux - 实现提供比线程更好的隔离但性能相当的 Linux 并发原语是否可行?

考虑以下应用程序:网络搜索服务器在启动时根据从磁盘读取的数据创建大型网页内存索引。一旦初始化,内存中的索引就不能被修改,并且会启动多个线程来为用户查询服务。假设服务器被编译为native代码并使用操作系统线程。现在,线程模型没有提供线程之间的隔离。有缺陷的线程或任何非线程安全代码可能会损坏索引或损坏由其他线程分配并在逻辑上属于其他线程的内存。此类问题很难检测和调试。理论上,Linux允许实现更好的隔离。一旦索引被初始化,它占用的内存就可以被标记为只读。线程可以替换为共享索引(共享内存)但除此之外具有单独堆并且不能相互破坏的进程。硬件和操作系统会自动检测到非法操作。不需要互斥锁或其他同步

java - String 是 Android 或 Java 中的原语还是对象?

在AndroidAPIhttp://developer.android.com/guide/topics/data/data-storage.html#pref中上面写着:SharedPreferenceallowsyoutosaveandretrievepersistentkey-valuepairsofprimitivedatatypes.YoucanuseSharedPreferencestosaveanyprimitivedata:booleans,floats,ints,longs,andstrings.String是原始数据类型还是对象? 最佳答

java - String 是 Android 或 Java 中的原语还是对象?

在AndroidAPIhttp://developer.android.com/guide/topics/data/data-storage.html#pref中上面写着:SharedPreferenceallowsyoutosaveandretrievepersistentkey-valuepairsofprimitivedatatypes.YoucanuseSharedPreferencestosaveanyprimitivedata:booleans,floats,ints,longs,andstrings.String是原始数据类型还是对象? 最佳答

c++ - C++ 隐式转换原语的警告或错误

我对一些C++代码进行了一些重度重构,并发现了许多由我不知道的隐式转换引起的错误。示例structA*a();boolb(){returna();}voidc(){int64_tconstd(b());}问题在b中,a的返回类型被默默地转换为bool。在c中,从b返回的值被静默提升为int64_t。问题我如何才能收到原始类型之间隐式转换的警告或错误?注意-Wconversion的使用似乎只选择了几个与上述示例无关的任意转换。BOOST_STRONG_TYPEDEF不是一个选项(我的类型需要是POD,因为它们用于磁盘结构中)。C也很有趣,但是这个问题与C++代码库有关。

c++ - C++ 隐式转换原语的警告或错误

我对一些C++代码进行了一些重度重构,并发现了许多由我不知道的隐式转换引起的错误。示例structA*a();boolb(){returna();}voidc(){int64_tconstd(b());}问题在b中,a的返回类型被默默地转换为bool。在c中,从b返回的值被静默提升为int64_t。问题我如何才能收到原始类型之间隐式转换的警告或错误?注意-Wconversion的使用似乎只选择了几个与上述示例无关的任意转换。BOOST_STRONG_TYPEDEF不是一个选项(我的类型需要是POD,因为它们用于磁盘结构中)。C也很有趣,但是这个问题与C++代码库有关。

c++ - 我在哪里可以找到 C++0x 同步原语的良好、可靠的文档?

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭4年前。Improvethisquestion我看过关于::std::thread和::std::forward之类的文章,但是我没有看到关于的好文章::std::原子。当然还有standardsproposalpaper,但是对于只想使用该工具的人,我还没有看到任何好的文档。有吗?我在哪里可以找到它? 最佳答案 just::thread库有不错的

c++ - 我在哪里可以找到 C++0x 同步原语的良好、可靠的文档?

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭4年前。Improvethisquestion我看过关于::std::thread和::std::forward之类的文章,但是我没有看到关于的好文章::std::原子。当然还有standardsproposalpaper,但是对于只想使用该工具的人,我还没有看到任何好的文档。有吗?我在哪里可以找到它? 最佳答案 just::thread库有不错的