我在 pthread 编程中遇到了一个奇怪的问题我在 vs2005 中用pthread-w32编译了以下代码
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <pthread.h>
#include <windows.h>
pthread_mutex_t lock;
void* thread1(void *) {
int r1;
while(true) {
pthread_mutex_lock(&lock); // rand is maybe a CS
r1 = rand() % 1500;
pthread_mutex_unlock(&lock);
Sleep(r1); printf("1:%d\n", r1);
}
return NULL;
}
void* thread2(void *) {
int r2;
while(true) {
pthread_mutex_lock(&lock);
r2 = rand() % 1500;
pthread_mutex_unlock(&lock);
Sleep(r2); printf("2:%d\n", r2);
}
return NULL;
}
int main() {
srand((int)time(NULL));
pthread_mutex_init(&lock, NULL);
pthread_t tc_p, tc_v;
pthread_create(&tc_p, NULL, …Run Code Online (Sandbox Code Playgroud) 我正在构建一个基于 ASP .NET 2.0 (C#) 的 Web 应用程序,该应用程序主要用于内部网,即在组织的局域网内使用。
关于用户界面,我需要选择两种方法。
构建一个单页 Web 应用程序,其中包含大量 ASP .NET AJAX 1.0 控件(模式弹出窗口)以显示分类内容,否则这些内容将进入单独的 .aspx 页面。
使用传统方法并构建多个页面。
1 页 UI 的外观和感觉都非常酷。但是,我对其可扩展性表示怀疑。
同意该应用程序旨在通过 LAN 使用,但由于它是一个 Web 应用程序,如果客户端愿意,它可能会通过 Internet 使用。
由于 1 页 UI,单个 .aspx 页面中已经有大约 2600 行代码,代码隐藏 (.aspx.cs) 中还有另外 1600 行代码
这将增长 - 至多 - 10,000 行代码(.aspx 中的 10,000 行和 .aspx.cs 中的 10,000 行)。所以我需要知道 - 基于 ASP .NET 的页面多少太多了 - 2600 + 1600 行代码是否可以用于 Intranet 和 Internet 访问?10,000 行代码怎么样?瓶颈是什么?这种单页方法可以吗,还是我需要退回到传统的多页方法?
另请参见C Tokenizer
这是我写的C的快速substr()(是的,变量初始化需要移动到函数的开始等,但你明白了)
我已经看到很多substr()的"智能"实现,简单的一行调用strncpy()!
它们都是错的(strncpy不保证空终止,因此调用可能不会产生正确的子字符串!)
这可能更好吗?
带出虫子!
char* substr(const char* text, int nStartingPos, int nRun)
{
char* emptyString = strdup(""); /* C'mon! This cannot fail */
if(text == NULL) return emptyString;
int textLen = strlen(text);
--nStartingPos;
if((nStartingPos < 0) || (nRun <= 0) || (textLen == 0) || (textLen < nStartingPos)) return emptyString;
char* returnString = (char *)calloc((1 + nRun), sizeof(char));
if(returnString == NULL) return emptyString;
strncat(returnString, (nStartingPos + text), nRun);
/* We do not need emptyString anymore from …Run Code Online (Sandbox Code Playgroud) 我有一个简单的文本文件,其中包含数千个单词,每个单词都在自己的行中,例如
aardvark
hello
piper
Run Code Online (Sandbox Code Playgroud)
我使用以下代码将单词加载到一个集合中(我需要单词列表来测试成员资格,所以set是我选择的数据结构):
my_set = set(open('filename.txt'))
Run Code Online (Sandbox Code Playgroud)
上面的代码生成一个包含以下条目的集合(每个单词后跟一个空格和换行符:
("aardvark \n", "hello \n", "piper \n")
Run Code Online (Sandbox Code Playgroud)
将文件加载到集合中但删除空间和\n的最简单方法是什么?
谢谢
标题是不言自明的:有没有人知道C的(好的)属性文件阅读器库,如果没有,C++?
[编辑:具体来说,我想要一个处理Java中使用的.properties文件格式的库:http://en.wikipedia.org/wiki/.properties]
我目前只使用JPA注释,但我真的不喜欢我用这么多ORM细节污染我的实体类,这些细节实际上与它们的行为无关(例如表名,id生成策略,连接列...... ).
我看到DataNucleus建议在XML中添加与ORM相关的注释(粉红色的那些),但我没有看到任何其他实现推荐这个,JPA似乎没有将注释分成这两个组(我认为JDO确实如此) .
是否有人以这种方式使用注释+ orm.xml,您有什么经历?
它会从我的实体课程中消除一些污染,还是会遇到问题?
有谁知道一个好的软件开发框架或类似的具有以下属性?
其中较为柔和的要求是为最常见的后端功能提供一组抽象,例如套接字,文件IO等(通常需要一些特定于平台的调整),并支持Python或C++等优秀语言,尽管如此学习一个新的(即不是perl)通常很有趣.
我认为可能的候选人是Qt 4.5或以上(但IFAIK Qt软件不会在没有任何安装的情况下在Vista上运行(?)),一些wxWidgets或者wxPython解决方案,也许是gtkmm.我发现的例子在一个或另一个要求上失败了.这并不意味着没有这样的例子,只是意味着我没有找到任何例子.所以我想知道是否有人知道任何现有的解决方案吗?
一些澄清;
我看到的用例是你有一些你依赖的软件(如项目规划,信息管理,分析工具或类似工具):
只要软件的行为相同,并且在不同目标上运行时可以处理相同的数据,也可以在棒上进行并行安装.
关于用例的另一个观点是,我有五台新安装的机器,分别是Vista,XP,OSX,Ubuntu和Kubuntu.我想,无需在机器上安装任何新东西,就可以在这五台机器中的每台机器上运行相同的软件(满足上述GUI要求等)(但如果需要,可以从不同的机器上运行)棒上捆绑).
这可能吗?
编辑:我已经尝试了一些使用一些小部件和一个sqlite数据库的Qt应用程序.很容易让它在ubuntu dist和osx上工作.对于Windows XP和Vista我不得不将QtCored4.dll,QtGuid4.dll,QtSqld4.dll和mingwm10.dll复制到分发目录(这是调试代码),我将qsqlited4.dll复制到分发中名为"sqldrivers"的文件夹中目录.
installation portability frameworks cross-platform portable-applications
所以,我有一个内部有数组的类.目前,我对类的项目进行枚举的策略是使用代码foreach (item x in classInstance.InsideArray).我更愿意使用foreach (item x in classInstance)并使数组私有化.我主要担心的是我真的需要避免任何缓慢的事情; 阵列受到很多打击(并且有几百个项目).枚举这个数组是很便宜的.一种想法只是拥有类实现IEnumerable<item>,但InsideArray.getEnumerator()只给我一个非泛型的枚举器.我也尝试过实现IEnumerable界面.这工作但很慢,可能是由于拳击.
有没有办法让这个类本身可以在没有性能损失的情况下进行枚举?
正常代码:
//Class
public class Foo {
//Stuff
public Item[,] InsideArray {get; private set;}
}
//Iteration. Shows up all over the place
foreach (Item x in classInstance.InsideArray)
{
//doStuff
}
Run Code Online (Sandbox Code Playgroud)
调整后,代码慢得多:
//Class
public class Foo : IEnumerable {
//Stuff
private Item[,] InsideArray;
System.Collections.IEnumerator System.Collections.IEnumerable GetEnumerator()
{
return InsideArray.GetEnumerator();
}
}
//Iteration. Shows up all over the place
foreach (Item x …Run Code Online (Sandbox Code Playgroud) 有没有办法只显示SQL查询的前N行输出?
奖励点,如果N输出行后查询停止运行.
我最感兴趣的是找到适用的东西Oracle.
我们需要构建一个能够每秒处理40,000条消息的系统.任何软件或硬件故障都不会丢失任何消息.
每条消息大小约为2-4Kb.
处理消息包括验证消息,进行一些简单的算术计算,将结果保存到数据库以及(有时)向其他系统发送通知.
优选的软件技术是.Net.
哪种软件和硬件模式最适合此类任务?
它需要多少硬件?
c ×2
c# ×2
c++ ×2
.net ×1
arrays ×1
asp.net ×1
failover ×1
frameworks ×1
hardware ×1
high-load ×1
ienumerable ×1
installation ×1
intranet ×1
java ×1
jpa ×1
orm ×1
performance ×1
portability ×1
properties ×1
pthreads ×1
python ×1
random ×1
scalability ×1
sql ×1
substr ×1
substring ×1
text-files ×1