问题标签 [synchronous]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1500 浏览

mmap - mmap 写入磁盘上的文件(同步/异步)

我有一个关于 mmap 功能的问题。当 mmap 在内核负责将数据持久保存到磁盘上的映射文件的异步模式下使用时,是否可以让以前的更新覆盖以后的更新?

假设在时间 T,我们修改内存中的一个位置,该位置是内存映射到磁盘上的文件,然后在时间 T+1 我们再次修改内存中的相同位置。由于对文件的写入不是同步的,内核是否有可能首先在时间 T+1 获取修改,然后在时间 T 获取修改,从而导致内存映射文件不一致?

0 投票
1 回答
1165 浏览

iphone - CFHost DNS 解析 - 什么时候可以使用同步 API?

几个月前,我参加了 iPhone 开发者技术讲座,向其中一位大师询问了 iPhone 上缺少 NSHost 的问题。我移植到 iPhone 的一些代码在其整个网络代码中大量使用了 NSHost。

有人告诉我 NSHost 在 iPhone 上,但它是私有的。我还被告知 NSHost 是一个同步 API,无论如何我都不应该使用它。(如果有人能详细说明为什么不应该使用它,作为奖励,那就太好了。)

我可以看到在主线程上使用同步 API 的注意事项,因为它们会阻塞直到完成 - 这对网络代码来说从来都不是一件好事,因为有很多因素可能导致 API 大量阻塞线程的时间。

我的解决方案是围绕 CFHost 的异步解析函数编写一个包装器。

结果效果很好,我正在考虑将其发布到公共领域。

但我的问题是这样的:假设我的应用程序在连接阶段每次运行只解析一次主机名,然后在会话的其余部分缓存它。在解决期间,会显示一个模式屏幕,告诉用户“正在连接”一个漂亮的微调器。

分辨率是否异步真的很重要吗?无论如何,用户必须等待连接,并且仅在第一次连接时完成解析。后续连接使用解析的缓存结果。

什么时候可以同步,什么时候应该异步?

0 投票
4 回答
14350 浏览

jquery - 如何在jQuery中编写一个循环,在继续循环之前等待每个函数完成

如果这是一个明显的问题,请原谅我。

我在页面上有未知数量的元素,我需要一次循环一个并做一些事情。但是,我需要暂停循环,直到元素上使用的函数完成,然后继续进行下一次迭代。

我尝试在 $.each 循环中执行此操作,但它会快速触发命令并完成,而无需等待它们完成。

有任何想法吗?

这就是我所拥有的,非常简单。我从这里得到了 wait() 函数:jquery cookbook site

问题是,循环不会等待 - 实际命令按预期工作,只是它们都立即关闭。

任何帮助表示赞赏,谢谢。

编辑:执行此操作后,我可能想再次执行循环,以便元素列表将按顺序再次淡入/淡出

EDIT2:已经获得了 1.4.2 jQuery 库,使用的是 1.3.2,因此使用了自定义 wait() 函数。现在使用 lobstrosity 提到的 delay() 。设法从他的回答中拼凑出一些接近我需要的东西,谢谢 lobstrosity :)。

0 投票
2 回答
225 浏览

silverlight - 同步的 Web 服务和模态对话框!

问题是....

该应用程序可能在 Silverlight 中。

可以实现 SYNChonous WebService 调用吗?

我尝试在 SL 中使用网格、编辑和使用 WebServices 来实现任何应用程序 RIA,但我不明白如何在没有 SYNC 调用的情况下使其成为可能。

而且我还需要使用 MODAL DIALOGS 来完成一些任务。

我调查了 Daniel Vaughan 的工作,他设法在 ThreadPool 中同步运行 Web 服务调用,但是我该如何做那个 GUI,等待对 Web 服务的调用?

丹尼尔沃恩网站:http ://danielvaughan.orpius.com/post/Synchronous-Web-Service-Calls-with-Silverlight-2.aspx

结合其他语言的这些基本内容,恕我直言,可以构建真正的应用程序。

听听建议...

切瓦。

0 投票
3 回答
3051 浏览

java - 推荐一种在Java中将同步方法转为异步的更好方法

在一个类中有一些同步运行的方法。我希望它们异步运行,第一个想法是包装它,并使用 switch 枚举来决定应该调用哪个函数。但是对于每个调用的方法,我都需要包装类中的一个新方法和一个新的枚举。它看起来像这样:

然后我学会了反思,我有了一个新的想法。那就是使用字符串而不是直接方法调用来调用方法。包装类读取并解析字符串,并使用反射获取类和包含方法。它将参数和 Method 对象放入一个类中,该类放入一个队列中。现在该类使用 Method.invoke(params) 而不是使用枚举进行切换。但是这个问题是编译器时类型检查丢失了。

当然,所有这些都只适用于无效的方法,但当然我们也可以使用 Future 类来返回值。

现在是否有任何框架已经实现了将同步调用转换为异步调用,或者您知道执行此操作的任何其他方法。

0 投票
1 回答
4447 浏览

asynchronous - 同步调用不就是超时值小的异步调用吗?

我有点困惑为什么同步调用与异步调用不同,因为从来没有“立即”响应,它仍然需要一些纳秒或毫秒?

0 投票
4 回答
1941 浏览

winapi - 根据 MSDN ReadFile() Win32 函数可能会错误地报告读取操作完成。什么时候?

MSDN 在其ReadFile()功能描述中指出:

如果 hFile 使用 打开FILE_FLAG_OVERLAPPED,lpOverlapped 参数必须指向一个有效且唯一的OVERLAPPED结构,否则该函数可能会错误地报告读取操作已完成。

我有一些应用程序违反了上述建议,我想知道问题的严重性。我的意思是该程序使用已创建的命名管道FILE_FLAG_OVERLAPPED,但它使用以下调用从中读取:

这意味着它NULL作为lpOverlapped参数传递。根据文档,该调用在某些情况下不应正常工作。我花了很多时间试图重现这个问题,但我无法做到!我总是在正确的时间将所有数据放在正确的位置。我只测试了命名管道。

有人知道我什么时候可以期望 ReadFile() 会错误地返回并报告成功完成,即使数据尚未在缓冲区中?为了重现问题,必须发生什么?文件、管道、套接字、控制台或其他设备是否会发生这种情况?我必须使用特定版本的操作系统吗?还是特定版本的读取(例如注册 I/O 完成端口的句柄)?或者读写进程/线程的特定同步?

或者什么时候会失败?这个对我有用 :/

请帮忙!

关于,马丁

0 投票
7 回答
2894 浏览

winapi - 是否可以将已为同步 I/O 打开的 HANDLE 更改为在其生命周期内为异步 I/O 打开?

现在,我在 Windows 中的大部分日常编程工作都围绕着各种 I/O 操作(管道、控制台、文件、套接字……)。我很清楚从/向不同类型的句柄读取和写入的不同方法(同步、异步等待事件完成、等待文件句柄、I/O 完成端口和可警报 I/O)。我们使用其中的许多。

对于我们的某些应用程序,只有一种方法来处理所有句柄将非常有用。我的意思是,程序可能不知道它收到了什么样的句柄,我们想使用,比如说,所有的 I/O 完成端口。

所以首先我会问:

假设我有一个句柄:

我的 I/O 进程从某个地方收到了它。有没有简单可靠的方法来找出它是用什么标志创建的?有问题的主要标志是FILE_FLAG_OVERLAPPED.

到目前为止,我知道的唯一方法是尝试将此类句柄注册到 I/O 完成端口(使用CreateIoCompletionPort())。如果成功,则使用 FILE_FLAG_OVERLAPPED 创建句柄。但是只有 I/O 完成端口必须使用,因为句柄不能在不关闭HANDLE h自身的情况下从它注销。

如果有一种简单的方法来确定 的存在FILE_FLAG_OVERLAPPED,那么我的第二个问题就会出现:

有什么办法可以将这样的标志添加到已经存在的句柄中?这将使最初为同步操作打开的句柄为异步打开。有没有办法创建相反的(FILE_FLAG_OVERLAPPED从异步中删除创建同步句柄)?

在阅读了 MSDN 并搜索了很多之后,我没有找到任何直接的方法。至少会有一些技巧可以做到这一点吗?CreateFile()就像使用函数或类似的东西以相同的方式重新创建句柄?甚至部分记录或根本没有记录的东西?

我需要这个的主要地方是确定进程应该从第三方应用程序发送给它的句柄中读取/写入的方式(或更改方式)。我们无法控制第三方产品如何创建它们的句柄。

亲爱的 Windows 大师:请帮助!

带着敬意

马丁

0 投票
4 回答
4116 浏览

java - MINA:执行同步写请求/读响应

我正在尝试使用 MINA 2.0 RC1 在基于 demux 的客户端应用程序中执行同步写入/读取,但它似乎卡住了。这是我的代码:

我可以在服务器端看到 LoginRequest 对象被检索,并发送了 LoginResponse 消息。在客户端,DemuxingProtocolCodecFactory接收响应,但在进行一些日志记录后,我可以看到客户端卡在对readFuture.awaitUninterruptibly().

我一生都无法根据我自己的代码弄清楚为什么它会卡在这里。我在会话配置上正确地将读取操作设置为 true,这意味着应该阻止消息。但是,当我尝试同步读取响应消息时,消息似乎不再存在。

关于为什么这对我不起作用的任何线索?

0 投票
1 回答
1464 浏览

iphone - iPhone 同步 FTP

我是初学者。我尝试在应用程序中使用一些同步 FTP 下载(为了从 ftp 服务器上的文件创建 iphone 上的文件),但我无法做到。我阅读了文档(和 CFTPSample),我设法使用异步下载但不是同步的。谁能帮我?

干杯