最近,我发现自己不得不写一些关于正在开发的应用程序中的竞争条件的问题(不是我).这可能会引起非技术性的利益相关者的注意,并且我没有直接的沟通渠道,因此我的解释需要采用书面形式.
我已经尝试过这篇文章了.我尽可能地掩盖技术细节,举例说明应用程序中将如何发生竞争条件,并描述其影响.我觉得我做得很好,但它远非完美.
问题是,尽管我试图保护读者不受计算机科学的影响,但我仍然发现在不失去正确性和实质性的情况下,很难消除诸如"执行线索"和"互斥"之类的短语.风险是,由于挥手太多,这些担忧可能会被视为一个虚构的笨蛋.
不管怎样,我对你的问题是这样的: 将如何你解释的竞争条件,以一个非技术人员? 你敢解释CPU调度吗?你会援引餐饮哲学家吗?
你不必在我的情况的限制下工作(但如果你这样做会很有帮助).
我正在使用一个正则表达式,将href标签从保存为字符串的html doc中剥离出来.以下代码是我在C#控制台应用程序中使用它的方式.
Match m = Regex.Match(htmlSourceString, "href=[\\\"\\\'](http:\\/\\/|\\.\\/|\\/)?\\w+(\\.\\w+)*(\\/\\w+(\\.\\w+)?)*(\\/|\\?\\w*=\\w*(&\\w*=\\w*)*)?[\\\"\\\']");
if (m.Success)
{
Console.WriteLine("values = " + m);
}
Run Code Online (Sandbox Code Playgroud)
但是,它只返回一个结果,而不是html页面上所有href标记的列表.我知道它有效,因为当我尝试时RegexOptions.RightToLeft,它返回字符串中的最后一个href标签.
我的if语句有什么东西不允许我返回所有结果吗?
我记得可以在 IIS 中停止网站,只需在站点目录中创建一个具有特殊名称的文件即可。但是我不记得名字,在谷歌上也找不到。你能帮助我吗?
之前我问过这个问题如何正确单元测试我的DAL?,有一件事对我来说没有答案是,如果真的测试我的DAL是有一个测试数据库,那么模拟与测试数据库的作用是什么?
另外,另一个人建议"在单元测试结束时使用事务和回滚,因此db是干净的",测试db就是.你们怎么看待这个测试+测试DB +事务回滚(所以db不是真正编写的)测试DAL的方法?
为了完整,我的DAL是使用Entity Framework构建的,DB中没有存储过程.由于EF是如此新颖,我真的需要测试DAL以确保它们正常工作.
以下代码段有什么问题?
#include <tr1/functional>
#include <functional>
#include <iostream>
using namespace std::tr1::placeholders;
struct abc
{
typedef void result_type;
void hello(int)
{ std::cout << __PRETTY_FUNCTION__ << std::endl; }
void hello(int) const
{ std::cout << __PRETTY_FUNCTION__ << std::endl; }
abc()
{}
};
int
main(int argc, char *argv[])
{
const abc x;
int a = 1;
std::tr1::bind(&abc::hello, x , _1)(a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
尝试用 g++-4.3 编译它,似乎cv -qualifier 重载函数混淆了两者tr1::mem_fn<>,tr1::bind<>并出现以下错误:
no matching function for call to ‘bind(<unresolved overloaded function type>,...
Run Code Online (Sandbox Code Playgroud)
相反,以下代码段可以编译,但似乎破坏了const-correctness …
有没有办法从java类访问Windows事件日志.有没有人为此编写任何API,有没有办法从远程机器访问数据?
场景是:
我在一个远程机器上运行一个进程,来自一个控制Java进程.这个远程进程将东西记录到事件日志中,我希望能够在控制过程中看到它.
提前致谢.
我有一个包含500,000个文件的目录.我想尽快访问它们.该算法要求我重复打开和关闭它们(不能同时打开500,000个文件).
我怎样才能有效地做到这一点?我原本以为我可以缓存inode并以这种方式打开文件,但是*nix没有提供通过inode打开文件的方法(安全性或其他一些方法).
另一个选择是不要担心它,并希望FS在文件查找目录中做得很好.如果这是最好的选择,哪个FS最好.某些文件名模式是否比其他文件模式更快?例如01234.txt vs foo.txt
顺便说一句,这完全在Linux上.
我有一个时间表示自UTC,1970年1月1日午夜以来经过的秒数(之前调用time()的结果).如何在这个时间添加一天?
在大多数情况下,添加24*60*60可以正常工作,但如果夏令时间在两者之间打开或关闭,则会失败.换句话说,我主要想要增加24小时,但有时候需要23或25小时.
举例说明 - 该计划:
#include <time.h>
#include <iostream>
int main()
{
time_t base = 1142085600;
for(int i = 0; i < 4; ++i) {
time_t time = base + i * 24 * 60 * 60;
std::cout << ctime(&time);
}
return 0;
Run Code Online (Sandbox Code Playgroud)
}
生产:
Sat Mar 11 08:00:00 2006
Sun Mar 12 09:00:00 2006
Mon Mar 13 09:00:00 2006
Tue Mar 14 09:00:00 2006
Run Code Online (Sandbox Code Playgroud)
我希望3月12日,13日的时间......也是早上8点.
FigBug提供的答案指出了我正确的方向.但我不得不使用localtime而不是gmtime.
int main()
{
time_t base = 1142085600;
for(int i = 0; i < …Run Code Online (Sandbox Code Playgroud) 我正在使用LINQ to SQL,我的图像字段被视为二进制.当我需要渲染图像时,将二进制类型转换为byte [](你可以只使用二进制对象的ToArray()方法)并不是什么大问题,但有人可以告诉我如何转换字节[]或将对象流式传输到Binary对象中,以便将其保存回数据库.
许多(大多数?)旨在实现可访问性和标准合规性的站点使用无序列表进行导航.这是否使网站更易于访问,还是仅提供有用的样式元素?
我不介意他们,我一直在以这种方式使用无序列表.就是这样,当我从页面中删除样式以试图衡量它的可访问性时,它让我觉得它也可以是简单的链接.这是从哪里来的?