FEX多线程墨西哥人功能

4视图(30天)
1月
1月 2011年12月20日
编辑: 1月 2018年1月6日
我发表一些FEX C-Mex功能,这可能得益于多线程。我喜欢保持功能兼容Windows、Linux和MacOS。
虽然我有一些经验在Windows下使用_beginthreadex和_endthreadex,我没有工作在Linux下的pthread库。虽然我也可以使用pthread Windows下,我不想增加用户任何进一步的要求,甚至“墨西哥人”的编译命令对一些用户来说太混乱了。
OpenMP是无法获得自由MSVC表达编译器。编译和安装MinGW的墨西哥人文件也不简单。
简单的解决方案是什么一个平台独立金宝搏官方网站的多线程C或c++ -Mex-functions吗?
2的评论
实验后奥特曼
实验后奥特曼 2014年3月6日
我相信使用winpthreads-32(适用于Win64 Win32,尽管名称)比MinGW要容易得多。看到 我最近的文章在UndocumentedMatlab.com上 。由于Pthreads本机支持mac和Linux,这可能是金宝app获胜的组合。

登录置评。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2011年12月22日
pthreads (Posix线程)是唯一标准,(据说)独立于平台的线程C。
POSIX标准pthreads成立于1995年,所以我不认为它是用于嵌入式系统,像一群这些几乎冻结了1990多分的能力(POSIX标准添加1900年之后往往是相对较高的开销为了支持普遍性)。金宝app
我的理解从当我在comp.lang以前活跃。cis that Windows threading is incompatible with POSIX threads, that it is not just a matter of translating calls but that Windows threading does something or other in an way that contradicts POSIX. I was, however, not interested enough to bother to check that out myself.
一个 列表(2006年) 所有已知的Unix操作系统的多线程库。
Apache Portable Runtime(4月)提供了一个 便携式OS线程接口
参见其他几个人(主要是为c++)上市 http://www.shlomifish.org/open-source/portability-libs/
2的评论
1月
1月 2012年2月25日
Matlab 2009 a和2011 b / Windows是附带一些boost库。这是Mac和Linux版本还关心的?他们能被用于一个标准化多线程支持吗?金宝app

登录置评。

更多的答案(2)

彼得•李
彼得•李 2012年7月3日
与c++ 11你的一般问题应该解决了吗?搜索stackoverflow(或者Matlab答案)如何使用c++编译墨西哥人11。
即使你得到C + + 11工作,c++多线程并不那么有趣,所以我建议使用塞隆演员库。很高兴做演员下多线程模型和这图书馆是非常有效和非常良好的文档记录。在不同的线程,它允许您灵活链接解决方案。金宝搏官方网站
唯一的问题是,如果你使用boost-thread线程在Linux下的连接步骤将冲突boost-thread Matlab使用在内部,这将需要更多的挣扎与墨西哥人得到工作。
1评论
1月
1月 2012年7月3日
是boost-libs附带Matlab足够了吗?

登录置评。


1月
1月 2012年9月6日
编辑:1月 2018年1月6日
不幸的是:
注意:这需要一个c++编译器和c++ 11(原名c++ 0 x)
金宝app支持。Ubuntu 12.04工作正确的开箱即用的、视觉工作室2010年
需要第三方实施std::线程。
问FEX用户安装的(非免费的)第三方实现str::线程是不够的。我有很多问题关于“墨西哥人设置”了。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!