问题标签 [blocking]

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 投票
3 回答
24884 浏览

python - python子进程通信()块

我正在使用进程模块调用外部程序(plink.exe)来登录服务器;但是当我调用通信来读取输出时,它是阻塞的。代码如下:

我知道该块是因为plink.exe它仍在运行;但我需要在子进程终止之前读取输出。有没有办法做到这一点?

0 投票
4 回答
4673 浏览

javascript - 如何防止 JavaScript HTML 阻塞

如何防止 JavaScript 阻止其他 JavaScript 开始下载?

我的网站上有以下内容:

当我使用 YSlow Firefox 插件时,我可以从网络流量选项卡中看到google.com/google-maps.jsJavaScript 在完成下载之前不会开始ex.js下载。

问题:我怎样才能同时拥有两者ex.jsgoogle-maps.js立即开始下载?

0 投票
3 回答
25431 浏览

c - 如何将套接字重置为阻塞模式(在我将其设置为非阻塞模式之后)?

我已阅读有关将套接字设置为非阻塞模式的内容。

http://www.gnu.org/software/libc/manual/html_mono/libc.html#File-Status-Flags

这是我所做的:

如何将套接字设置回阻塞模式?我没有看到 O_BLOCK 标志?

谢谢你。

0 投票
3 回答
4775 浏览

asp.net - SQL Server 请求超时,因为 TempGetStateItemExclusive 被连续调用

我运行了一个流量不错的网站(每天大约 100,000 次页面浏览量),但由于 SQL Server 超时错误,该网站偶尔会瘫痪。

当我运行 SQL Profiler 时,我看到一个命令每秒被调用数百次,如下所示:

我们使用 SQL Server 来存储 ASP.NET 会话状态。以上是为获取给定会话的会话状态而调用的存储过程。它似乎在循环,一遍又一遍地要求相同的 2 或 3 个会话。

我找到了一个看起来很有希望的热修复程序,它似乎可以解决这个确切的情况,但它似乎并没有为我们解决问题。(我假设此修补程序包含在最新的 .NET 服务包中,因为它看起来不像您可以直接安装它)。我手动添加了该注册表项,但我们仍然看到像上面这样的循环存储过程调用(比每 500 毫秒更频繁地请求同一个会话)

我无法在开发机器上重新创建它。当对同一个会话 ID 发出两个请求时,它似乎会正确阻塞,甚至会尝试命中 SQL,直到第一页释放会话。

有任何想法吗?先感谢您!!!

0 投票
2 回答
6958 浏览

java - Java线程中断和join(join后线程还活着)

我试图找出一些行为。我有一些产生一个线程的代码。它等待一段时间,然后中断它,加入它,然后退出该方法。

我目前只用一个线程运行它。我可以在我的日志中看到,通常 isAlive() 在加入后会为假,但有时它仍然存在。线程处于一个while循环中:

所以我怀疑正在发生的事情是我们在读取/处理输入流(阻塞io)时中断了线程,并且它所花费的时间超过了达到while条件并完成连接所需的时间。

所以我的问题是,线程会发生什么?

它不再被引用,线程可以被垃圾收集,但没有一个资源被正确清理,这看起来很糟糕。除了切换到 NIO 之外,还有更好的模式吗?

0 投票
7 回答
28881 浏览

java - 将异步计算包装成同步(阻塞)计算

类似的问题:

我有一个对象,我想向库客户端(尤其是脚本客户端)公开一个方法,例如:

但我可用的原始“东西”是一组事件驱动的类:

在 ImplementingThing 接受输入,做一些神秘的事情,比如在任务队列中排队,然后当结果发生时,sink.onBazResult()在一个线程上被调用,该线程可能与 ImplementingThing.doSomethingAsync() 被调用的线程可能相同,也可能不同。

有没有一种方法可以使用我拥有的事件驱动函数以及并发原语来实现 MyNiceInterface 以便脚本客户端可以愉快地等待阻塞线程?

编辑:我可以为此使用FutureTask吗?

0 投票
4 回答
11714 浏览

c# - C#:阻塞函数调用直到满足条件

我正在开发一个 C# Winforms 应用程序,部分应用程序将使用 AsyncUpload 将文件上传到网络服务器(使用它,由于需要使用 porgress 回调),在 C# 程序中

我有一个简单的 for 循环调用上传函数

乐趣有一些魔力:

以及在异步上传完成时调用的回调

编辑

逻辑顺序:

  1. Fun 被调用(来自循环)
  2. 有趣的逻辑被执行并完成..
  3. 回到for循环
  4. 当 UploadFileAsync (在另一个线程中运行一些逻辑)将结束时,最终将调用回调

问题出在第三点,当执行移回 for 循环时,我需要阻止循环继续,直到回调被调用。

0 投票
6 回答
26283 浏览

javascript - 如何让程序等待javascript中的按钮按下?

我需要修改一些遗留的 javascript 代码。有一个地方我想等到用户按下两个按钮之一,然后继续程序流程(如prompt()函数)。如何实现?

0 投票
1 回答
187 浏览

.net - AutoResetEvent 对象,等待 60 秒或事件

我使用 AutoResetEvent 对象阻止线程 60 秒,但我想阻止它 60 秒或 AutoResetEvent.set() 事件

代码 :

但它总是等待整个 60 秒!即使我释放了信号。

0 投票
3 回答
10097 浏览

sockets - C中的非阻塞udp套接字编程:我得到了什么?

我在理解 recv()/recvfrom() 从非阻塞 UDP 套接字返回什么时遇到了问题。

更具体一点,与 TCP 相比(如果我错了,请纠正我):

  • 在缓冲区中有一些数据之前,阻塞套接字(TCP 或 UDP)不会从 recv() 返回。这可能是一些字节数 (TCP) 或完整的数据报 (UDP)。

  • 非阻塞 TCP 套接字返回 EWOULDBLOCK (linux) / WSAEWOULDBLOCK (windows) 或当前在缓冲区中的字节。由于 TCP 数据是一个流,因此返回多少字节并不重要。

现在的问题:

  • 如果没有可用数据,非阻塞 UDP 套接字也会返回 WOULDBLOCK (linux) / WSAEWOULDBLOCK (windows)。但是,如果有数据可用,非阻塞 UDP 套接字是否只返回一些字节,这可能意味着您只能获得一半的数据报,或者 UDP 套接字是否总是返回完整的数据报?

编辑:

我所说的“一半数据报”的意思是:如果我在套接字当前正在接收数据报的那一刻调用 recv() 会发生什么。在那一刻,缓冲区中有一些字节,但数据报还没有完成。

感谢您的解释和评论。谢谢!