我正在关注x86程序集的本教程.到目前为止,每个例子都使用作者称为"c-driver"程序,用汇编模块编译,用于某些"初始化".就像是:
int main(void) {
int ret = asm_main();
return ret;
}
Run Code Online (Sandbox Code Playgroud)
然后使用C调用约定正常编写asm_main函数.我想知道C编译器生成所需的初始化究竟是什么,以及是否可以以可移植的方式完成.
信息:我在Windows XP,32位盒子上,使用NASM汇编器和mingw32-gcc进行链接.
嗨,我正在尝试将1个列表附加到另一个列表中.我之前使用它AddRange()但它似乎没有在这里工作...这是代码:
IList<E> resultCollection = ((IRepository<E, C>)this).SelectAll(columnName, maxId - startId + 1, startId);
IList<E> resultCollection2 = ((IRepository<E, C>)this).SelectAll(columnName, endId - minId + 1, minId);
resultCollection.ToList().AddRange(resultCollection2);
Run Code Online (Sandbox Code Playgroud)
我做了调试以检查结果,这是我得到的:resultCollection计数为4 resultCollection2的计数为6,并且在添加范围后,resultCollection仍然只有4,当它应该有10的计数.
谁能看到我做错了什么?任何帮助表示赞赏.
谢谢,
马特
我今天花了很多时间研究无锁队列.我有一个多生产者,多个消费者的情况.为了测试,我使用Win32下的Interlocked SList实现了一个系统,它使我基于线程的高度基于任务的代码的性能翻了一番.不幸的是,我希望支持多个平台.在多个平台上联锁本身不是问题,我可以安全地假设我可以毫无问题地互锁.然而,实际的实施失去了我.
最大的问题似乎是您需要保证列表推送/弹出只使用一个互锁呼叫.否则你会留下空间让另一个线程夹入并搞砸了.我不确定微软的实现如何在幕后工作,并希望了解更多.
任何人都可以指出我有用的信息(平台和语言是非常无关紧要的)?
除此之外,我很想知道它是否可以实现无锁向量.这对我来说有很大的用处:)干杯!
编辑:阅读了草药的DDJ文章,我可以看到一个减少的锁定队列,它与我已经拥有的非常相似.但是我注意到最后有一些文件可以使用双重比较和交换(DCAS)操作进行真正的无锁队列.有没有人使用cmpxchg8b(或cmpxchg16b)实现队列?
我只是在这一点上思考(没有读过论文),但你可以使用这个系统同时更新头部和尾部指针,从而避免在2个原子操作之间跳过另一个线程的任何问题.但是你仍然需要获得下一个头指针来测试尾部指针,看看你是否刚刚修改了尾部.当另一个线程准备这样做时,你如何避免另一个线程更改此信息?这是如何以无锁方式实现的?或者我最好还是阅读一篇研究论文的难以理解的内容?;)
所以我有两个ruby Date对象,我想每月迭代它们.例如,如果我有Date.new(2008,12)和Date.new(2009,3),它将产生我2008-12,2009-1,2009-2,2009-3(当然是Date对象).我尝试过使用范围,但它每天都会产生.我看到了Date的step方法,但是它只允许我传递天数(并且每个月都有不同的数量).有人有主意吗?
不幸的是,Lucida Grande没有斜体变体,我需要一个.
我在这里的选择似乎有限,我希望有人对我有更好的选择.
首先,我尝试通过执行以下操作应用NSAffineTransform:
NSFont *theFont = [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSMiniControlSize]];
const CGFloat kRotationForItalicText = -15.0;
NSAffineTransform *italicTransform = [NSAffineTransform transform];
[italicTransform scaleBy:[NSFont systemFontSizeForControlSize:NSMiniControlSize]];
[italicTransform rotateByDegrees:kRotationForItalicText];
theFont = [NSFont fontWithDescriptor:[theFont fontDescriptor] textTransform:italicTransform];
Run Code Online (Sandbox Code Playgroud)
但是,这不会产生特别易读的文本.
我的下一个选择是切换到另一种字体:
theFont = [NSFont userFontOfSize:[NSFont labelFontSize]];
theFont = [sharedFontManager convertFont:theFont toHaveTrait:NSItalicFontMask];
Run Code Online (Sandbox Code Playgroud)
虽然这里的文字在斜体时是可读的,但我宁愿使用相同的字体,因为它显然是不同的.
当然,我可以对我的斜体和非斜体文本使用userFontOfSize字体,但我目前仅限于使用systemFontOfSize字体.
我还有其他(好的)选择吗?
谢谢.
在xcode 3.2.1之前,您可以通过键盘快捷键(Cmd + Option + L/R箭头键)循环浏览历史文件列表.
现在,这组键将为您提供文件中的历史记录(即您在此文件中执行的所有操作).
有没有办法只在您在历史记录列表中打开的文件之间使用键盘进行导航?
我有很长的氨基酸字符串,我想根据列表中的起止值进行拆分.一个例子可能是最明确的解释方式:
str = "MSEPAGDVRQNPCGSKAC"
split_points = [[1,3], [7,10], [12,13]]
output >> ['M', '(SEP)', 'AGD', '(VRQN)', 'P', '(CG)', 'SKAC']
Run Code Online (Sandbox Code Playgroud)
额外的括号是显示从split_points列表中选择的元素.我不认为开始 - 停止点会重叠.
我有一堆可行的想法,但看起来非常低效(代码长度明智),似乎必须有一个很好的pythonic方式来做到这一点.