是否有标准调用将POSIX套接字的发送端一直刷新到远程端,还是需要将其作为用户级协议的一部分实现?我环顾了常见的标题,却找不到任何东西.
我正在寻找一个用C语言编写的B树库的精简和构建良好的开源实现.它需要在非GPL许可下才能在商业应用程序中使用.理想情况下,此库支持将B树索引作为磁盘文件进行存储/操作,以便可以使用可配置(即:最小)RAM占用空间构建大型树.
注意:由于似乎存在一些混淆,二元树和B树不是一回事.
我有一个应用程序,其中2个线程正在运行...当我从一个线程更改一个全局变量时,是否有任何证据,另一个会注意到这个变化?我没有任何同步或互斥系统......但是这段代码应该一直工作(想象一下名为dataUpdated的全局bool):
线程1:
while(1) {
if (dataUpdated)
updateScreen();
doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
线程2:
while(1) {
if (doSomething())
dataUpdated = TRUE;
}
Run Code Online (Sandbox Code Playgroud)
像gcc这样的编译器是否以不检查全局值的方式优化此代码,只在编译时考虑它的值(因为它会在同一个thred中更改)?
PS:对于类似游戏的应用程序而言,在写入值时是否会有读取真的无关紧要......重要的是这个更改会被其他线程注意到.
在审查了iPhone SDK文档之后,我还没有找到一种方法来编写应用程序,以便它可以以编程方式处理iPhone平台内传入的SMS消息的内容.这个想法将是这样的应用程序在后台运行,并基于特定格式的SMS消息将能够采取特定的行动.
有没有人知道iPhone SDK应用程序是否可以实现这一点,如果是这样,请提供指向如何完成此操作的信息的指针?
我正在寻找特定的建议或对算法和/或数据结构的引用,以便将单词列表编码成有效地变成拼写检查字典的单词.该方案的目标将导致原始单词列表与编码形式的非常高的压缩比.我对编码字典的唯一输出要求是,可以以相对有效的方式针对原始单词列表测试任何提出的目标字的存在性.例如,应用程序可能希望针对100,000字词的字典检查10,000个单词.事实并非如此 要求编码的字典表单能够[轻松]转换回原始单词列表形式 - 二进制是/否结果是针对结果字典测试的每个单词所需的全部内容.
我假设编码方案,以提高压缩比,将利用给定语言中的已知结构,如单数和复数形式,所有格形式,收缩等.我特别感兴趣主要编码英语单词,但要明确,该方案必须能够编码任何和所有ASCII文本"单词".
我想到的特定应用程序可以假设是非易失性存储空间非常宝贵的嵌入式设备,而字典则是随机可访问的只读存储区.
编辑:总结字典的要求:
当多个线程通过getter方法访问类字段时,如何保持线程安全?synchronized关键字是否足够?
这样安全吗:
public class SomeClass {
private int val;
public synchronized int getVal() {
return val;
}
private void setVal(int val) {
this.val = val;
}
}
Run Code Online (Sandbox Code Playgroud)
或者,二传手会引入更多并发症吗?
对于MIPS-32处理器体系结构,似乎没有明确的标准化堆栈帧和C语言调用约定(寄存器使用等).也就是说,似乎完全取决于汇编器/编译器工具链来定义自己的堆栈帧和调用约定.我很难找到GCC编译器用于MIPS-32指令集的约定的确切参考.我特意在Cygwin上使用GCC交叉编译器,目标是在eCos开源内核的嵌入式环境中使用MIPS-32内核.
任何有关MIPS-32在该领域的GCC权威文件的提及都将受到赞赏.
我对多线程编程和多核使用有一些疑问.
特别是我想知道操作系统和/或框架(这是.NET)如何处理大量使用的核心.
这是关于线程的问题:
我的最后一个问题,基本上是上面的重用,是关于.NET ThreadPool类,它处理诸如.BeginInvoke之类的东西.这堂课有没有做过这些?如果没有,为什么不,或者应该呢?
有没有办法调整这个处理,在操作系统上提示这个特定的线程,当你为它分配一个核心时请多关注它,因为我知道它会使用很多cpu.那会有意义吗?或者"很多cpu"只是相对的,因此不够好?
我目前正在制作CPython 3.0 Python解释器的嵌入式系统端口,我对任何参考或文档特别感兴趣,这些参考或文档提供了有关3.0版代码的设计和结构的详细信息,甚至是任何2代码. x发布.
到目前为止,我发现的一个有用的文件是关于实现的信息化PEP - 这是一个很好的概述 - 但仍然是相当高的水平.希望能够找到更多关于更多模块的更多细节,或者甚至涵盖一些关于移植注意事项的内容.