问题列表 - 第8201页

pthread-win32 的 VS rand() 问题

我在 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)

c++ random pthreads visual-studio

1
推荐指数
1
解决办法
1752
查看次数

ASP.NET Web 应用程序 - 1 页中的 5000 行代码 - 可以接受吗?

我正在构建一个基于 ASP .NET 2.0 (C#) 的 Web 应用程序,该应用程序主要用于内部网,即在组织的局域网内使用。

关于用户界面,我需要选择两种方法。

  1. 构建一个单页 Web 应用程序,其中包含大量 ASP .NET AJAX 1.0 控件(模式弹出窗口)以显示分类内容,否则这些内容将进入单独的 .aspx 页面。

  2. 使用传统方法并构建多个页面。

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# asp.net intranet scalability

4
推荐指数
1
解决办法
2962
查看次数

这是C的好子系统吗?

另请参见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)

c substring substr

1
推荐指数
2
解决办法
7188
查看次数

Python:将文件中的单词加载到集合中

我有一个简单的文本文件,其中包含数千个单词,每个单词都在自己的行中,例如

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的最简单方法是什么?

谢谢

python text-files

28
推荐指数
2
解决办法
4万
查看次数

C(或C++)的属性文件库

标题是不言自明的:有没有人知道C的(好的)属性文件阅读器库,如果没有,C++?

[编辑:具体来说,我想要一个处理Java中使用的.properties文件格式的库:http://en.wikipedia.org/wiki/.properties]

c c++ properties

13
推荐指数
2
解决办法
2万
查看次数

JPA:我应该使用orm.xml清理我的实体类吗?

我目前只使用JPA注释,但我真的不喜欢我用这么多ORM细节污染我的实体类,这些细节实际上与它们的行为无关(例如表名,id生成策略,连接列...... ).

我看到DataNucleus建议在XML中添加与ORM相关的注释(粉红色的那些),但我没有看到任何其他实现推荐这个,JPA似乎没有将注释分成这两个组(我认为JDO确实如此) .

是否有人以这种方式使用注释+ orm.xml,您有什么经历?

它会从我的实体课程中消除一些污染,还是会遇到问题?

java orm jpa

7
推荐指数
1
解决办法
4365
查看次数

是否有任何USB棒可运行,无安装,跨平台的软件框架(带GUI)?

有谁知道一个好的软件开发框架或类似的具有以下属性?

  • 跨平台:它应该可以在XP,Vista,OSX和Linux的常见版本(例如Ubuntu和Kubuntu)上运行.
  • 无安装:能够从USB记忆棒运行软件而无需将任何内容复制到主机.
  • 有良好的GUI支持(这就是为什么这个问题没有给出一个合适的答案,据我所知).
  • 许可许可,如LGPL或BSD等.

其中较为柔和的要求是为最常见的后端功能提供一组抽象,例如套接字,文件IO等(通常需要一些特定于平台的调整),并支持Python或C++等优秀语言,尽管如此学习一个新的(即不是perl)通常很有趣.

我认为可能的候选人是Qt 4.5或以上(但IFAIK Qt软件不会在没有任何安装的情况下在Vista上运行(?)),一些wxWidgets或者wxPython解决方案,也许是gtkmm.我发现的例子在一个或另一个要求上失败了.这并不意味着没有这样的例子,只是意味着我没有找到任何例子.所以我想知道是否有人知道任何现有的解决方案吗?

一些澄清;

  • "框架"我指的是像Qt或gtkmm或带有widget包的python.
  • 这是关于能够在没有安装的情况下在多个平台上运行成品,而不是具有便携式开发环境.
  • 它不是靴子.
  • 如有必要,必须专门为不同的目标构建软件.

我看到的用例是你有一些你依赖的软件(如项目规划,信息管理,分析工具或类似工具):

  • 不依赖于互联网连接可用.
  • 在不同的主机上运行,​​在那里安装任何东西都不是很好.
  • 由用户通过物理介质(例如USB记忆棒)移动.
  • 在不同的操作系统上运行,例如Windows,Vista,Ubuntu,OSX.
  • 在这些不同的主机上处理相同的数据(数据可以存储在主机或棒上).
  • 并没有真正限制捆绑框架的大小(除非它是几千兆字节,这是不现实的).

只要软件的行为相同,并且在不同目标上运行时可以处理相同的数据,也可以在棒上进行并行安装.

关于用例的另一个观点是,我有五台新安装的机器,分别是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

10
推荐指数
1
解决办法
2610
查看次数

更快的枚举:利用数组枚举

所以,我有一个内部有数组的类.目前,我对类的项目进行枚举的策略是使用代码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)

c# arrays performance ienumerable

4
推荐指数
1
解决办法
3910
查看次数

仅显示SQL查询的前N行输出

有没有办法只显示SQL查询的前N行输出?
奖励点,如果N输出行后查询停止运行.

我最感兴趣的是找到适用的东西Oracle.

sql

20
推荐指数
3
解决办法
9万
查看次数

系统的模式和技术,每秒可处理40,000条消息

我们需要构建一个能够每秒处理40,000条消息的系统.任何软件或硬件故障都不会丢失任何消息.

每条消息大小约为2-4Kb.

处理消息包括验证消息,进行一些简单的算术计算,将结果保存到数据库以及(有时)向其他系统发送通知.

优选的软件技术是.Net.

哪种软件和硬件模式最适合此类任务?

它需要多少硬件?

.net hardware failover design-patterns high-load

3
推荐指数
1
解决办法
318
查看次数