问题列表 - 第18814页

C++ 0x内存模型和推测性加载/存储

所以我正在阅读作为即将推出的C++ 0x标准一部分的内存模型.但是,我对允许编译器做什么的一些限制有点困惑,特别是关于推测性加载和存储的限制.

首先,一些相关的东西:

Hans Boehm关于线程和C++ 0x中的内存模型的页面

Boehm,"线程无法实现为库"

Boehm和Adve,"C++并发内存模型的基础"

Sutter,"Prism:基于原理的Microsoft本地代码平台的顺序存储模型",N2197

Boehm,"并发内存模型编译后果",N2338

现在,基本思想本质上是"数据无竞赛程序的顺序一致性",这似乎是编程简易性和允许编译器和硬件优化机会之间的妥协.如果不对不同线程对相同存储器位置的两次访问进行排序,则至少有一个存储到存储器位置,并且它们中的至少一个不是同步动作,则定义数据争用.这意味着对共享数据的所有读/写访问必须通过某些同步机制,例如互斥体或对原子变量的操作(嗯,可以对原子变量进行操作,只为专家提供放松的内存排序,但默认提供为顺序一致).

鉴于此,我对普通共享变量上的虚假或推测性加载/存储的限制感到困惑.例如,在N2338中我们有例子

switch (y) {
    case 0: x = 17; w = 1; break;
    case 1: x = 17; w = 3; break;
    case 2: w = 9; break;
    case 3: x = 17; w = 1; break;
    case 4: x = 17; w = 3; break;
    case 5: x = 17; w = 9; break;
    default: x = 17; w = 42; break;
}
Run Code Online (Sandbox Code Playgroud)

不允许编译器转换为

tmp = …
Run Code Online (Sandbox Code Playgroud)

c++ concurrency memory-model compiler-optimization c++11

24
推荐指数
2
解决办法
3811
查看次数

是否有具有添加和删除事件的List版本

我需要一个具有Add和Remove事件的.net Collection.是否有预制版本?

例如,当用户通过事件将项添加到列表时,我会更新一些内部计数器.(不是我打算做的.)

.net c# collections c#-3.0

8
推荐指数
2
解决办法
1477
查看次数

MYSQL语法错误1064

我只是想弄清楚为什么从这个查询得到错误1064

//prep the data for database use
$manufacturer_id = $_GET['id'];
$manufacturer_display_name = mysql_prep($_POST['manufacturer_display_name']);
$manufacturer_name = mysql_prep($_POST['manufacturer_name']);


$query = "UPDATE IT_manufacturer SET
        manufacturer_name = '{$manufacturer_name}',
        manufacturer_display_name = '{$manufacturer_display_name}',
        WHERE manufacturer_id = {$manufacturer_id}
        ";

$result = mysql_query($query, $connection);
confirm_query ($result);
Run Code Online (Sandbox Code Playgroud)

如果我回显变量$ manufacturer_name,$ manufacturer_display_name,$ manufacturer_id它们都有值但是我收到此错误

无法执行查询您的SQL语法中有错误; 检查与您的MySQL服务器版本对应的手册,以便在第4行错误编号1064的"WHERE manufacturer_id = 1"附近使用正确的语法

任何帮助

php mysql mysql-error-1064

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

通过setInterval事件调用类原型方法

我有一个简单的JavaScript类.

此类的一种方法是使用setInterval函数设置计时器.每次事件触发时我想调用的方法都在同一个类中定义.

问题是,如何将此方法作为参数传递给setInterval函数?

一次尝试是setInterval('this.showLoading(),100).但是不起作用.这个方法访问类属性,所以我需要'this'引用.

这是示例代码:

    function LoadingPicture(Id)
    {
        this.imgArray = null;
        this.currentImg = 0;
        this.elementId = Id;
        this.loadingTimer = null;
    }


   LoadingPicture.prototype.showLoading = function()
    {
        if(this.currentImg == imgArray.length)
            currentImg = 0;

        document.getElementById(this.elementId).src = imgArray[this.currentImg++].src;
    }


    LoadingPicture.prototype.StartLoading = function()
    {
        document.getElementById(this.elementId).style.visibility = "visible";
        loadingTimer = setInterval("showLoading()", 100);
    }
Run Code Online (Sandbox Code Playgroud)

javascript

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

PHP:包含的会话

我需要为我的php页面使用会话,因此,在我的index.php页面上,我添加了session_start(); 在打开php标签之后.

但是,这个页面有一些包含,其中包含其他内容.所以,更深层次的,当我想调用$ _SESSION var时,它无效.

如何访问会话变量甚至深入到.inc文件?

php session include

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

在WPF中命中测试

我有Ellipse一个Canvas,我正在做它的命中测试.每次我点击它的笔划Ellipse,测试都会通过.如果我点击中间Ellipse,测试失败.这很好!

在我填充这样的椭圆之后:myEllipse.Fill = new SolidColorBrush(Colors.Blue);,当我点击中间时,测试pasess Ellipse.

我怎么能禁用它?(即使Ellipse填写时,我点击中间时测试也会失败)谢谢!

.net c# wpf graphics hittest

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

Virtuemart如何在不使用EAV的情况下进行EAV?

我理解EAV中的三个基本故障,即重新组装数据需要做大量的工作.但是,我想要一个可以添加自定义字段的数据库.很多人说Virtuemart允许自定义字段但不使用EAV数据库结构.有人可以解释如何做到这一点或提供链接?

sql virtuemart entity-attribute-value

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

将SWF转换为PNG

我希望能够采用1帧SWF文件并通过PHP将其转换为PNG.我可以使用命令行工具来完成这项工作.

我怎么能这样做?我发现了一个ActiveX库,但这似乎是一个太多的层.我也看到Gnash似乎有一个PNG输出类,但我无法弄清楚如何从命令行获取它而不做我自己的深度编码.还有其他聪明的解决方案吗?谢谢!

编辑:澄清一下,这不是一次性的任务我只想做一次.我希望能够让PHP脚本在命令上执行此任务.谢谢!

另一个编辑:还有一个澄清.这不是用户在Flash中绘图的情况.我正在下载原始的1帧SWF文件,并希望保存PNG副本以减少下载时间.这样的任务可能吗?再次感谢!

php flash image

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

阻止您的Java Web应用程序跨平台的事情

有没有什么东西可以无知地阻止java Web应用程序跨平台?(窗口/ LINUX/MAC)

我打算使用的工具是java/spring framework/hibernate

java cross-platform

5
推荐指数
4
解决办法
135
查看次数

双击打开文件c#

我有一个填充文件路径的列表框.有人知道如何在双击时打开文件的默认程序吗?例如,如果列表框中的一个项目显示"c:\ test.txt",那么如何在记事本中打开它?如果是"c:\ inetpub\wwwroot\sitetest\test.asp",如何在默认的asp编辑器中打开它?谢谢.

c# listbox file double-click

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