问题标签 [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 投票
2 回答
29363 浏览

c# - 如何创建一个简单的 c# http 监视器/拦截器?

我正在阅读我希望的那个问题(如何在 C# 中创建简单的代理?)。

我只是想开发 ac# 应用程序,例如,监视 Firefox、IE 等并记录所有导航页面。根据访问的页面,我想阻止该网站(如父母过滤器)。

代码片段/示例很好,但如果你能告诉我这些类的一些使用方向,我将不胜感激。:-)

0 投票
4 回答
12533 浏览

sockets - 非阻塞套接字轮询与阻塞套接字

我需要同时发送接收
哪个选项会更好:

  • 1 个使用非阻塞套接字处理发送和接收的线程

或者

  • 2个线程,一个处理阻塞recv()+一个处理send()?

还是有其他解决方案?

我预计最多有 50 个双向连接。这导致选项#1 中有 50 个线程,选项#2 中有 100 个线程。

0 投票
2 回答
525 浏览

javascript - JS图像预加载被阻止?

我正在使用一个名为 lightbox 的 JQuery 插件(顺便说一句,这很棒)。问题是,我正在访问外部站点上的图像,我认为它们阻止了灯箱预加载它们

具体来说,我已经确认 picasa 为预加载器提供了 404(使用 firebug),但是如果我右键单击 firebug“net”选项卡中失败的请求,并且“在新选项卡中打开”图像加载正常。

来自 picasa 的任何图像都会发生这种情况,除非我已经查看过它们(在这种情况下,我相信它们是从浏览器的缓存中提取的,而不是再次加载它们)

浏览器发送的标头与预加载器(也来自 firebug)之间存在一些差异:

预加载器的“接受”标头是:

vs 直接在浏览器中加载图片:

我怀疑这是远程服务器可以将浏览器请求与 javascript 区分开来的一种方式。你怎么看?

此外,这是插件中的预加载器代码......以防万一

更新

显然 picasa 完全阻止我显示全尺寸图像,无论是 DOM 的一部分还是通过 javascript 预加载...不知道该怎么做

0 投票
2 回答
7348 浏览

http - 事件循环与多线程阻塞 IO

我正在阅读有关服务器架构的评论。

http://news.ycombinator.com/item?id=520077

在这条评论中,这个人说了三件事:

  1. 事件循环一次又一次地被证明真正适合大量低活动连接。
  2. 相比之下,与事件循环相比,具有线程或进程的阻塞 IO 模型已被一次又一次地展示,以减少每个请求的延迟。
  3. 在轻负载的系统上,差异是无法区分的。在负载下,大多数事件循环选择放慢速度,大多数阻塞模型选择卸载。

这些是真的吗?

还有另一篇题为“为什么事件是一个坏主意(对于高并发服务器)”的文章

http://www.usenix.org/events/hotos03/tech/vonbehren.html

0 投票
6 回答
3074 浏览

python - 如何在 Python 中进行非阻塞 URL 获取

我正在Pyglet中编写一个 GUI 应用程序,它必须显示来自 Internet 的数十到数百个缩略图。现在,我正在使用urllib.urlretrieve来抓取它们,但是每次都会阻塞直到它们完成,并且一次只能抓取一个。

我宁愿并行下载它们,并在完成后立即显示它们,而不会在任何时候阻塞 GUI。做这个的最好方式是什么?

我对线程了解不多,但看起来线程模块可能会有所帮助?或者也许有一些我忽略的简单方法。

0 投票
2 回答
650 浏览

c# - C# 使用线程池中的临时结果回调客户端应用程序的最佳方法

我编写了一个 C# 库,它有一种方法可以从并行的多个文本段落中计算单词。文本段落以字符流的形式给出,每次getnextchar()调用都有随机延迟。我的库方法必须采用这些字符流的数组并返回组合的词频计数。为此,我有一个安全共享的词频数据结构和一个线程来读取每个字符流并更新共享集合。当所有线程都完成后,我将数据结构返回给客户端应用程序。

客户端应用程序需要每 10 秒一次的组合字数统计的中间结果。为此,我使用委托每 10 秒回调一次客户端的结果,直到所有工作线程都完成,然后我将最终结果返回给客户端。

我的问题是,当我用中间结果回调客户端时,我必须锁定我的共享数据结构并等待客户端应用程序从回调中返回,然后才能解锁它。在执行回调时,所有工作线程都被阻塞,等待数据结构上的锁。这似乎不是一件明智的事情,因为我认为我不应该依赖或相信客户端代码会立即返回,甚至根本不应该返回。然而,他们唯一能想到的不依赖于客户端代码的其他方式是制作我的数据结构的副本或快照,并通过回调将其传递给客户端。这是以内存和计算为代价的,但是一旦复制完成,工作人员可以继续更新共享集合,回调可以做任何它想做的事情。

我的问题有两个:

1)这是两个弊端中较小的一个,允许错误的客户端回调实现阻止工作人员,或定期执行昂贵的操作。

2)有没有办法解决以上任何一个都不能解决的问题?

0 投票
6 回答
80381 浏览

sql-server - SQL Server SELECT 语句导致阻塞

我们正在使用带有大型 select 语句的 SQL Server 2005 数据库(无行版本控制),并且我们看到它阻止其他语句运行(使用 看到sp_who2)。我没有意识到 SELECT 语句可能会导致阻塞 - 我能做些什么来缓解这种情况吗?

0 投票
6 回答
884 浏览

java - 是否有可能知道进程是否在 Linux 上的 Receive() 调用中处于阻塞状态等待?

我的主要目的是以循环方式一个接一个地执行进程,直到一个调用 receive() 并被阻塞,以便执行切换到队列中的下一个进程。有一个用 Java 编码的控制器应用程序,它使用 Runtime.getRuntime().exec() 执行这些进程(也是 Java 应用程序)并保留作为 Process 对象的返回值。

为了达到这个目的,我需要捕获接收()调用(或它们的状态,被阻塞)并将它们告诉控制器(主)应用程序。

如果可能的话,我可以尽可能地低级。我的第一个想法是从驱动程序获取此信息,然后将其告诉我的控制器 Java 应用程序。我编写了一个 linux 内核网络模块来捕获发送和接收操作,但是 AFAIK 的 socket.receive() 函数并没有告诉网络驱动程序任何东西。

所以,我认为选项是从 JVM 获取这些信息,以某种方式从 linux 命令或其他获取它,或者可能通过 linux 内核模块?

你有什么建议?

0 投票
2 回答
2161 浏览

oracle - 通过 dblink 从 Oracle 到 DB2 的查询会阻塞 DB2 表吗?

我有一个中等规模的查询,其中包含从 Oracle 通过 DBLink 到 DB2 系统的 500.000 个寄存器。此查询是否可以阻止 DB2 表,以便可以更新它,直到我关闭 DBLink 或直到我完成查询的工作(插入选择到 Oracle 表中)

0 投票
2 回答
1853 浏览

jquery - 如何阻止选择框被阻止为弹出位 Internet Explorer 8?

我正在一个网站上工作,如果我点击一个普通的选择框,它会被 IE8 阻止为弹出窗口。什么?!我在做什么吗?有没有办法解决?

我正在使用一些 jQuery 插件,但没有影响这些选择框。jQuery 表单插件会这样做吗?