草庐IT

NONBLOCKING

全部标签

php - php ticks是非阻塞的吗

我偶然遇到了这样的事情:method$object=newmy_class();register_tick_function(array(&$object,'my_method'),true);?>可在register_tick_function找到.我想知道在php中使用它是否会阻塞?编辑:我的意思是,如果我在同一个线程上启动了多个phptick运行,它是否能够在后台处理IO而其他ticks运行,还是需要等待每个tickt交出控制权? 最佳答案 Tick函数是阻塞的。PHP通常不(native)支持在同一请求中并行执行。所以不,您

java - 在 Java/Android 中查找需要一秒或更长时间执行的方法的最快/最简单的方法

我试图弄清楚哪些方法(尤其是在主线程上)的执行时间超过一秒。不幸的是,我正在使用DDMS和traceview,但我真的不明白如何读取提供的数据。有没有一种简单的方法可以找到长时间运行的方法? 最佳答案 @JakeWharton刚刚发布Hugo这将允许您注释方法并在logcat中接收这些方法的运行时间。 关于java-在Java/Android中查找需要一秒或更长时间执行的方法的最快/最简单的方法,我们在StackOverflow上找到一个类似的问题: http

c++ - 覆盖最旧数据的 C/C++ 无锁(或非阻塞)环形缓冲区?

我正在尝试找到一种方法来制作无锁或非阻塞的方法来为单个消费者/单个消费者制作环形缓冲区,该缓冲区将覆盖缓冲区中最旧的数据。我读过很多无锁算法,这些算法在缓冲区已满时“返回false”时起作用——即,不要添加;但我什至找不到伪代码来讨论当你需要覆盖最旧的数据时如何做。我正在使用GCC4.1.2(工作限制,我无法升级版本...)并且我有Boost库,过去我制作了自己的Atomic变量类型接近即将到来的规范(它并不完美,但它是线程安全的并且可以满足我的需要)。当我想到它时,我认为使用这些原子应该真正解决这个问题。关于我在想什么的一些粗略的伪代码:templateclassRingBuffer

windows - 在 Win32 中,有没有办法测试套接字是否是非阻塞的?

在Win32中,有没有办法测试套接字是否是非阻塞的?在POSIX系统下,我会做类似下面的事情:intis_non_blocking(intsock_fd){flags=fcntl(sock_fd,F_GETFL,0);returnflags&O_NONBLOCK;}但是,Windows套接字不支持fcntl()。非阻塞模式是使用ioctl和FIONBIO来设置的,但似乎没有办法使用ioctl获取当前的非阻塞模式。我可以使用Windows上的其他一些调用来确定套接字当前是否处于非阻塞模式吗? 最佳答案 稍微长一点的回答是:不是,但你通

asynchronous - 如何最好地实现阻塞/等待 Actor ?

我对Akka和编写并发应用程序还很陌生,我想知道什么是实现一个等待redis列表的actor的好方法,一旦一个项目可用,它就会处理它,或者将它发送到要处理的不同参与者?使用阻塞函数BRPOPLPUSH会更好,还是要求actor每秒轮询redis的调度程序会更好?此外,在正常系统上,我可以同时生成多少个这样的actor而不会消耗系统必须提供的所有资源?如何确定一个Actor系统能够在其运行的系统上处理每种Actor类型的数量? 最佳答案 根据经验,您永远不应在receive内阻塞。每个参与者都应该只依赖CPU,永远不要等待、休眠或阻塞

node.js - 如何通过mongoose非阻塞获取大数据?

我如何通过mongoose获得一个大集合,我得到返回的每个文档,而不是一个包含整个集合的大数组?目前我正在使用以下查询:varquery=templateData.find({});query.exec(function(err,docs){//docsasarray});这样,查询函数就像是阻塞IO而不是非阻塞。有没有办法让它变得更加非阻塞? 最佳答案 好吧,因为我在发布这个问题后又看了一眼mongoose文档,所以我克服了stream()函数,它完美地实现了非阻塞操作。怪我,但我认为在mongoose文档中可以更无礼地提到它:h

python - 是否可以从 Python 对 Mongo 进行非阻塞批量插入?

我必须读取一些来自网络的数据,然后将其插入MongoDB。所有这些都是使用Python脚本完成的。有没有什么方法可以从Python对Mongo进行非阻塞插入,这样我就可以在Mongo服务器处理插入的同时继续处理通过网络传来的数据? 最佳答案 是的。存在三种可能:执行未确认的插入:collection.insert(documents,w=0)。一旦数据被写入套接字的输出缓冲区,对insert()的调用就会返回,并且您的代码不会阻塞等待来自MongoDB的确认。您不会向您的应用程序报告任何错误。有关写入问题的更多信息here和here

mysql - 重构非阻塞nodejs do..while循环

我正在用node.js编写一个api。第一个Web服务端点-/create-使用随机的6字符散列创建一个新的数据库条目,很像bit.ly散列。在PHP中做了类似的事情后,我编写了一个do..while循环,它生成一个随机字符串并检查我的mysql数据库(使用node-mysql)以确保它是免费的。我还有一个计数器,所以如果需要的话,我可以在x次迭代后失败。vari=0;varalphabet=['a','b','c','d','e','f','g','h','i','j'];varhash=null;varsuccess=false;do{//generatearandomhashby

mysql - nodejs 和非阻塞噩梦

我目前正在使用node.js和MySQL开发API。我是这个非阻塞的新手,我有一个问题。我正在使用Node和MySQL模块。假设我们有这样一个函数:functiondoQuery(sql,callback){connect();//doestheClient.connect()client.query(sql,function(err,results,fields){if(err){errorLog.trace(err,__filename);throwerr;}else{logger.trace('DATABASEACCESS:{query:'+sql+'}result:OK',__

java - 如何在 Play 框架中运行异步/非阻塞 MySQL 查询?

刚开始使用Play。该文档讨论了如何异步运行Play。但如何在异步运行Play时运行MySQL查询?正常的MySQL查询是阻塞的,对吧?所以那是行不通的。Node.js有自己的非阻塞MySQL客户端就是为了这个目的,但我找不到类似的东西用于Play。如何在异步Play应用程序中运行MySQL查询? 最佳答案 PlayJobs在一个单独的线程中执行并释放主http线程。当Job(包装在Promise对象中)完成后返回时,主http线程会从它停止的地方开始。因此,主http线程不会被阻塞,可以用于处理其他传入的http请求。