所以我正在阅读作为即将推出的C++ 0x标准一部分的内存模型.但是,我对允许编译器做什么的一些限制有点困惑,特别是关于推测性加载和存储的限制.
首先,一些相关的东西:
Hans Boehm关于线程和C++ 0x中的内存模型的页面
Sutter,"Prism:基于原理的Microsoft本地代码平台的顺序存储模型",N2197
现在,基本思想本质上是"数据无竞赛程序的顺序一致性",这似乎是编程简易性和允许编译器和硬件优化机会之间的妥协.如果不对不同线程对相同存储器位置的两次访问进行排序,则至少有一个存储到存储器位置,并且它们中的至少一个不是同步动作,则定义数据争用.这意味着对共享数据的所有读/写访问必须通过某些同步机制,例如互斥体或对原子变量的操作(嗯,可以对原子变量进行操作,只为专家提供放松的内存排序,但默认提供为顺序一致).
鉴于此,我对普通共享变量上的虚假或推测性加载/存储的限制感到困惑.例如,在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) 我需要一个具有Add和Remove事件的.net Collection.是否有预制版本?
例如,当用户通过事件将项添加到列表时,我会更新一些内部计数器.(不是我打算做的.)
我只是想弄清楚为什么从这个查询得到错误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"附近使用正确的语法
任何帮助
我有一个简单的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) 我需要为我的php页面使用会话,因此,在我的index.php页面上,我添加了session_start(); 在打开php标签之后.
但是,这个页面有一些包含,其中包含其他内容.所以,更深层次的,当我想调用$ _SESSION var时,它无效.
如何访问会话变量甚至深入到.inc文件?
我有Ellipse一个Canvas,我正在做它的命中测试.每次我点击它的笔划Ellipse,测试都会通过.如果我点击中间Ellipse,测试失败.这很好!
在我填充这样的椭圆之后:myEllipse.Fill = new SolidColorBrush(Colors.Blue);,当我点击中间时,测试pasess Ellipse.
我怎么能禁用它?(即使Ellipse填写时,我点击中间时测试也会失败)谢谢!
我理解EAV中的三个基本故障,即重新组装数据需要做大量的工作.但是,我想要一个可以添加自定义字段的数据库.很多人说Virtuemart允许自定义字段但不使用EAV数据库结构.有人可以解释如何做到这一点或提供链接?
我希望能够采用1帧SWF文件并通过PHP将其转换为PNG.我可以使用命令行工具来完成这项工作.
我怎么能这样做?我发现了一个ActiveX库,但这似乎是一个太多的层.我也看到Gnash似乎有一个PNG输出类,但我无法弄清楚如何从命令行获取它而不做我自己的深度编码.还有其他聪明的解决方案吗?谢谢!
编辑:澄清一下,这不是一次性的任务我只想做一次.我希望能够让PHP脚本在命令上执行此任务.谢谢!
另一个编辑:还有一个澄清.这不是用户在Flash中绘图的情况.我正在下载原始的1帧SWF文件,并希望保存PNG副本以减少下载时间.这样的任务可能吗?再次感谢!
有没有什么东西可以无知地阻止java Web应用程序跨平台?(窗口/ LINUX/MAC)
我打算使用的工具是java/spring framework/hibernate
我有一个填充文件路径的列表框.有人知道如何在双击时打开文件的默认程序吗?例如,如果列表框中的一个项目显示"c:\ test.txt",那么如何在记事本中打开它?如果是"c:\ inetpub\wwwroot\sitetest\test.asp",如何在默认的asp编辑器中打开它?谢谢.
c# ×3
php ×3
.net ×2
c#-3.0 ×1
c++ ×1
c++11 ×1
collections ×1
concurrency ×1
double-click ×1
file ×1
flash ×1
graphics ×1
hittest ×1
image ×1
include ×1
java ×1
javascript ×1
listbox ×1
memory-model ×1
mysql ×1
session ×1
sql ×1
virtuemart ×1
wpf ×1