曾几何时,我碰到了Indy的文章介绍,从那以后就不能停止思考封锁与非封锁的IO。 寻找一些很好的文章来描述阻塞IO和非阻塞IO的优点和缺点,以及如何在每种情况下devise你的应用程序以获得自然,容易理解和易于维护的代码。 想了解BIG图片…
来自node.js的观点,所有的代码都是非阻塞的。 在Go中,使用频道很容易实现非阻塞。 如果有人正在写一个node.jstypes的服务器,是否有意义,使其非阻塞? 例如,有一个数据库连接()函数返回一个通道,而不是等待连接发生阻塞。 对我来说,这似乎是正确的做法 但是…
InputStream.available()在Java中做什么? 我阅读了文档,但是我仍然无法解决。 该文件说: 返回可以从此inputstream读取(或跳过)的字节数,而不会被此inputstream的下一个调用者方法阻塞。 下一个调用者可能是相同的线程或另一个线程。 类InputStream的可用方法始终返回0。 他们是什么意思的阻止 ? 这是否意味着同步通话? 最重要的是, available()方法的目的是什么?
我正在使用WAMP,运行APACHE v2.2.22,PHP 5.3.13和MySQL v5.5.24在我的本地计算机(Windows 7 Ultimate x64)上开发一个站点。 我正在开发使用Chrome v 22.0.1229.94。 不过,我在网站上已经有了相当多的javascript,而Chrome则无情地阻止了javascript在页面上的运行。 点击地址栏中的小“阻止的JavaScript”图标包括“总是允许在本地主机上的Javascript”的下拉菜单,我也有一个JavaScript的例外,在Chrome的设置中明确表示总是允许JavaScript的HTTP :// localhost”的。 Cookies被允许,“允许所有网站运行JavaScript”被closures,我不知道为什么Chrome不允许JavaScript运行。 总的来说,IE9和Firefox 16.1都允许使用JavaScript,我可以利用它们,但是我不知道该如何解决这个问题。 我只是好奇,如果有什么我可以做的,以解决这个在Chrome中,我想继续在Chrome开发。
我怎样才能从控制台python应用程序轮询键盘? 具体来说,我想在很多其他I / O活动(套接字select,串口访问等)中做类似的事情: while 1: # doing amazing pythonic embedded stuff # … # periodically do a non-blocking check to see if # we are being told to do something else x = keyboard.read(1000, timeout = 0) if len(x): # ok, some key got pressed # do something 什么是在Windows上这样做的正确pythonic方式? 而且,Linux的可移植性不会太差,尽pipe这不是必需的。
在iOS 5中, NSManagedObjectContext有一些新的方法, performBlock:和performBlockAndWait: 这些方法实际使用的是什么? 他们在旧版本中取代什么? 应该传递什么样的信息给他们? 我如何决定使用哪个? 如果有人使用它的一些例子,那就太好了。
我在网上search了关于阻塞I / O和非阻塞I / O的一些技术细节,我发现有几个人说非阻塞I / O比阻塞I / O要快。 例如在这个文件中 。 如果我使用阻塞I / O,那么当前阻塞的线程无法做其他任何事情…因为阻塞了。 但是一旦一个线程开始被阻塞,操作系统就可以切换到另一个线程并且不会切换回来,直到被阻塞的线程有一些事情要做。 所以只要系统上有另一个线程需要CPU而没有被阻塞,与基于事件的非阻塞方法相比,CPU不应该有更多的空闲时间。 除了减lessCPU闲置的时间之外,我还可以看到另外一个选项来增加计算机在给定的时间范围内可以执行的任务数量:减less切换线程引起的开销。 但是,这怎么办呢? 是否有足够的开销来显示可衡量的影响? 这里是一个想法,我可以如何描绘它的工作: 为了加载文件的内容,应用程序将这个任务委托给基于事件的I / O框架,传递一个callback函数以及一个文件名 事件框架委托给操作系统,该操作系统对硬盘的DMA控制器进行编程,以将文件直接写入存储器 事件框架允许运行更多的代码。 完成磁盘到内存的复制后,DMA控制器会引起中断。 操作系统的中断处理程序通知基于事件的I / O框架文件被完全加载到内存中。 它是如何做到的? 使用信号? 当前在事件I / O框架中运行的代码完成。 基于事件的I / O框架检查其队列,并从步骤5看到操作系统的消息,并执行步骤1中获得的callback。 这是如何工作的? 如果没有,它是如何工作的? 这意味着事件系统可以工作,而不需要明确地触摸堆栈(比如真正的调度器,在切换线程时需要备份堆栈并将另一个线程的堆栈复制到内存中)? 这实际上保存多less时间? 还有更多吗?
我已经尝试了PorterStemmer和Snowball,但都不适用于所有的单词,缺less一些非常常见的单词。 我的testing词是:“ 跑仙人掌仙人掌仙人掌社区社区 ”,都得到不到一半的权利。 也可以看看: 产生真实词汇的词干algorithm 梗阻 – 代码示例或开源项目?
如何防止从我的网站下载图像和video文件? 可能吗? 什么是最好的方法来做到这一点?
他们似乎也在做同样的事情……是一个现代人还是一个老人? 还是他们支持不同的浏览器? 当我自己处理事件(没有框架)时,我总是检查两者,如果存在的话执行。 (我也return false ,但我有这样的感觉,不能使用node.addEventListener附加的事件)。 那为什么呢? 我应该继续检查吗? 或者实际上有区别? (我知道,很多问题,但他们都是一样的=))