问题列表 - 第9957页

C++中的线程安全单例实现

以下是C++中单例模式的众所周知的实现.
但是,我不完全确定它是否是线程安全的.
基于此前问过的类似问题的答案,它似乎是线程安全的.
是这样吗?

//Curiously Recurring Template Pattern    
//Separates a class from its Singleton-ness (almost).    
#include <iostream>  
using namespace std;

template<class T> class Singleton {
  Singleton(const Singleton&);
  Singleton& operator=(const Singleton&);
protected:
  Singleton() {}
  virtual ~Singleton() {}
public:
  static T& instance() {
    static T theInstance;
    return theInstance;
  }
};

// A sample class to be made into a Singleton
class MyClass : public Singleton<MyClass> {
 int x;
protected:
  friend class Singleton<MyClass>;
  MyClass() { x = 0; }
public:
 void setValue(int n) …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading design-patterns

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

如何将Windows COM端口输出重定向到文件?

有没有一种简单的方法可以将串口输出重定向到一个文件,我可以在测试的Windows桌面系统上安装,而无需更改任何代码?

我正在尝试在串行收据打印机模块中调试问题,而今天我没有真正的设备.如果我可以帮助它,我不想开始对代码进行任何更改,我只想捕获当前正在输出的内容,以便我可以在文件中查看它.

这是Windows XP,如果这有任何区别.

windows serial-port

16
推荐指数
3
解决办法
4万
查看次数

getopt不解析参数的可选参数

在C中,getopt_long不会解析命令行参数参数的可选参数.

当我运行程序时,无法识别可选参数,如下面的示例运行.

$ ./respond --praise John
Kudos to John
$ ./respond --blame John
You suck !
$ ./respond --blame
You suck !
Run Code Online (Sandbox Code Playgroud)

这是测试代码.

#include <stdio.h>
#include <getopt.h>

int main(int argc, char ** argv )
{
    int getopt_ret, option_index;
    static struct option long_options[] = {
               {"praise",  required_argument, 0, 'p'},
               {"blame",  optional_argument, 0, 'b'},
               {0, 0, 0, 0}       };
    while (1) {
        getopt_ret = getopt_long( argc, argv, "p:b::",
                                  long_options,  &option_index);
        if (getopt_ret == -1) break;

        switch(getopt_ret)
        {
            case 0: break;
            case 'p': …
Run Code Online (Sandbox Code Playgroud)

c arguments getopt getopt-long optional-arguments

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

MYSQL中的批量更新

我有一个包含一些用户数据的表.

他们中的许多人使用我们在OLDHOST.com的内部电子邮件系统.我们已在NEWHOST.com更新到更新的系统.所有用户的用户名都是一样的,所以如果你有dave@OLDHOST.com,你现在是dave@NEWHOST.com

是否有更好的方法来更改users表中的所有电子邮件字段而不选择PHP中的所有行,然后检查电子邮件中是否包含OLDHOST,然后将字符串替换为NEWHOST?

是否有一个很棒的SQL语句来帮助解决这个问题?


一些表的例子(简化)

id | firstname | surname | email
------------------------------------------------
1  | dave      | smith   | a21dsmith@OLDHOST.com
2  | barry     | jones   | a21bjones@OLDHOST.com
Run Code Online (Sandbox Code Playgroud)

等等

所有需要更改的内容都是包含OLDHOST(并非全部)到NEWHOST的任何电子邮件.

mysql

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

如何使用Eclipse CDT构建SCons项目?

我们有一个相当大的C/C++项目,使用scons进行构建.我想通过Eclipse-CDT尝试构建它.任何人都有这方面的经验,可以告诉我将scons设置为构建器的步骤.(不使用SConsBuilder插件,它不适用于Fedora-11的Eclipse-CDT).

eclipse build eclipse-cdt scons

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

Linux/perl mmap性能

我正在尝试使用mmap优化大型数据集的处理.数据集在千兆字节范围内.我们的想法是将整个文件映射到内存中,允许多个进程同时处理数据集(只读).但它没有按预期工作.

作为一个简单的测试,我简单地mmap文件(使用perl的Sys :: Mmap模块,使用"mmap"子,我相信它直接映射到底层的C函数)并让进程休眠.执行此操作时,代码在从mmap调用返回之前花费的时间超过一分钟,尽管此测试无效 - 甚至不读取 - 来自mmap的文件.

猜测,我虽然linux可能需要在第一个mmap时读取整个文件,所以在第一个进程中映射文件后(当它正在休眠时),我在另一个尝试读取的过程中调用了一个简单的测试文件的前几兆字节.

令人惊讶的是,似乎第二个进程在从mmap调用返回之前也花费了大量时间,与mmap第一次执行文件的时间大致相同.

我已确保正在使用MAP_SHARED,并且第一次映射文件的进程仍处于活动状态(它尚未终止,并且mmap尚未取消映射).

我期望一个mmapped文件允许我给多个工作进程有效随机访问大文件,但是如果每个mmap调用都需要先读取整个文件,那就更难了.我没有测试使用长时间运行的进程来查看第一次延迟后访问是否很快,但我希望使用MAP_SHARED,另一个单独的进程就足够了.

我的理论是mmap会或多或少地立即返回,并且linux会根据需要或多或少地加载块,但我看到的行为恰恰相反,表明它需要在每次调用mmap时读取整个文件.

知道我做错了什么,或者我是否完全误解了mmap应该如何工作?

linux random perl mmap

10
推荐指数
2
解决办法
5819
查看次数

保护WCF服务,使其只能由Silverlight应用程序调用

我正在编写一个Silverlight应用程序,它将通过一些WCF Web服务读取和写入服务器端数据库的数据.

保护这些Web服务的最佳方法是什么?

我的目标是确保其他应用程序无法调用这些服务,并且可能会因为向数据库添加项目的请求而发送垃圾邮件.只有Silverlight应用程序需要能够访问它们.

security silverlight wcf

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

在eclipse/aptana中用"untab"键盘快捷键(向左移动一段代码)?

好吧,希望问题是不言自明的.

选择一个代码块和标签很容易,但反过来怎么样?

目前,我只是在行的开头搜索并替换空白.什么更快?

aptana eclipse ide zend-studio

179
推荐指数
8
解决办法
17万
查看次数

使用$ .getJSON时出现问题

我正在使用YQL调用以下URL

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22UTG.L%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=cbfunc
Run Code Online (Sandbox Code Playgroud)

这将在JSON中返回以下内容

cbfunc({"query":{"count":"1","created":"2009-06-27T11:53:44Z","lang":"en-US","updated":"2009-06-27T11:53:44Z","uri":"http://query.yahooapis.com/v1/yql?q=select+*+from+yahoo.finance.quotes+where+symbol+in+%28%22UTG.L%22%29","diagnostics":{"publiclyCallable":"true","url":[{"execution-time":"468","content":"http://datatables.org/alltables.env"},{"execution-time":"634","content":"http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml"},{"execution-time":"351","content":"http://download.finance.yahoo.com/d/quotes.csv?s=UTG.L&f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy"},{"execution-time":"357","content":"select * from csv where url=@url and columns='Ask,AverageDailyVolume,Bid,AskRealtime,BidRealtime,BookValue,Change&PercentChange,Change,Commission,ChangeRealtime,AfterHoursChangeRealtime,DividendShare,LastTradeDate,TradeDate,EarningsShare,ErrorIndicationreturnedforsymbolchangedinvalid,EPSEstimateCurrentYear,EPSEstimateNextYear,EPSEstimateNextQuarter,DaysLow,DaysHigh,YearLow,YearHigh,HoldingsGainPercent,AnnualizedGain,HoldingsGain,HoldingsGainPercentRealtime,HoldingsGainRealtime,MoreInfo,OrderBookRealtime,MarketCapitalization,MarketCapRealtime,EBITDA,ChangeFromYearLow,PercentChangeFromYearLow,LastTradeRealtimeWithTime,ChangePercentRealtime,ChangeFromYearHigh,PercebtChangeFromYearHigh,LastTradeWithTime,LastTradePriceOnly,HighLimit,LowLimit,DaysRange,DaysRangeRealtime,FiftydayMovingAverage,TwoHundreddayMovingAverage,ChangeFromTwoHundreddayMovingAverage,PercentChangeFromTwoHundreddayMovingAverage,ChangeFromFiftydayMovingAverage,PercentChangeFromFiftydayMovingAverage,Name,Notes,Open,PreviousClose,PricePaid,ChangeinPercent,PriceSales,PriceBook,ExDividendDate,PERatio,DividendPayDate,PERatioRealtime,PEGRatio,PriceEPSEstimateCurrentYear,PriceEPSEstimateNextYear,Symbol,SharesOwned,ShortRatio,LastTradeTime,TickerTrend,OneyrTargetPrice,Volume,HoldingsValue,HoldingsValueRealtime,YearRange,DaysValueChange,DaysValueChangeRealtime,StockExchange,DividendYield'"}],"javascript":{"instructions-used":"66024"},"user-time":"1537","service-time":"1810","build-version":"1949"},"results":{"quote":{"symbol":"UTG.L","Ask":"129.00","AverageDailyVolume":"354500","Bid":"128.50","AskRealtime":"129.00","BidRealtime":"128.50","BookValue":"0.00","Change_PercentChange":"+7.50 - +6.19%","Change":"+7.50","Commission":null,"ChangeRealtime":"+7.50","AfterHoursChangeRealtime":"N/A - N/A","DividendShare":"0.00","LastTradeDate":"6/26/2009","TradeDate":null,"EarningsShare":"0.00","ErrorIndicationreturnedforsymbolchangedinvalid":"N/A","EPSEstimateCurrentYear":"0.00","EPSEstimateNextYear":"0.00","EPSEstimateNextQuarter":"0.00","DaysLow":"122.00","DaysHigh":"128.75","YearLow":"36.25","YearHigh":"319.75","HoldingsGainPercent":"- - -","AnnualizedGain":"-","HoldingsGain":null,"HoldingsGainPercentRealtime":"N/A - N/A","HoldingsGainRealtime":null,"MoreInfo":"cred","OrderBookRealtime":"N/A","MarketCapitalization":null,"MarketCapRealtime":null,"EBITDA":"0","ChangeFromYearLow":"+92.50","PercentChangeFromYearLow":"+255.17%","LastTradeRealtimeWithTime":"N/A - <b>128.75<\/b>","ChangePercentRealtime":"N/A - +6.19%","ChangeFromYearHigh":"-191.00","PercebtChangeFromYearHigh":"-59.73%","LastTradeWithTime":"Jun 26 - <b>128.75<\/b>","LastTradePriceOnly":"128.75","HighLimit":null,"LowLimit":null,"DaysRange":"122.00 - 128.75","DaysRangeRealtime":"N/A - N/A","FiftydayMovingAverage":"125.714","TwoHundreddayMovingAverage":"100.63","ChangeFromTwoHundreddayMovingAverage":"+28.12","PercentChangeFromTwoHundreddayMovingAverage":"+27.94%","ChangeFromFiftydayMovingAverage":"+3.036","PercentChangeFromFiftydayMovingAverage":"+2.42%","Name":"UNITE GROUP","Notes":"-","Open":"122.00","PreviousClose":"121.25","PricePaid":null,"ChangeinPercent":"+6.19%","PriceSales":null,"PriceBook":null,"ExDividendDate":"14-Apr-04","PERatio":null,"DividendPayDate":"13-May-05","PERatioRealtime":null,"PEGRatio":null,"PriceEPSEstimateCurrentYear":null,"PriceEPSEstimateNextYear":null,"Symbol":"UTG.L","SharesOwned":null,"ShortRatio":null,"LastTradeTime":"11:35am","TickerTrend":"&nbsp;--=+++&nbsp;","OneyrTargetPrice":null,"Volume":"254927","HoldingsValue":null,"HoldingsValueRealtime":null,"YearRange":"36.25 - 319.75","DaysValueChange":"- - +6.19%","DaysValueChangeRealtime":"N/A - N/A","StockExchange":"London","DividendYield":null,"PercentChange":"+6.19%"}}}});
Run Code Online (Sandbox Code Playgroud)

但我正在努力使用这些数据(我是jQuery和JSON的新手)

$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22UTG.L%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=cbfunc",
    function(data){
Run Code Online (Sandbox Code Playgroud)

这个例子只是闪烁受限的URL错误.

任何人的帮助 - 我只是解析数据并打印到屏幕.提前致谢!

javascript jquery json jsonp

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

没有.svn目录的svn checkout和update

我在svn下有一个网站,我想用实际存储库中的内容修补实时网站(即在实时网站上有效地调用svn更新),但我不想在生产网站上的每个文件夹中使用.svn目录.

有没有办法设置svn,以便具有版本信息的.svn文件夹与版本控制下的文件不在同一目录中?

在git中,您可以创建和分离工作树并以这种方式将更新推送到项目(根据http://toroid.org/ams/git-website-howto),我基本上希望能够在svn中执行类似的操作.

svn website-deployment

17
推荐指数
2
解决办法
8320
查看次数