,没有按照PHP的思维习惯,在莫名其妙的请款下就停止了【阻塞】,阻塞的本质是在底层操作系统、网络接口等用c语言封装后暴露出来的一个PHP函数(看c的socket总结出来的) 2、socket_accept...、socket_read、socket_recv默认都会阻塞,但也可以用socket_set_nonblock()、socket_set_block()设置 3、PHP不关心buffer缓存,在这:...研究开始 两者注释一个*/ // socket_set_nonblock($socket_accept); // while(($buf_read_data = socket_read...== false){//PHP_NORMAL_READ 不够length就阻塞,PHP_BINARY_READ不会 // var_dump($buf_read_data."...、socket_recv、socket_accept三个默认都是阻塞的,不阻塞就是:不会'卡死'在这些函数上 //不开启不能反向写入数据:报错:Warning: socket_recv(): unable
从标准输入读入一行内容并以空格为分隔符赋值给变量,如果输入的内容过多,则把剩下的所有内容都赋值给最后一个变量 $read A B C 123 456 789 101 $echo "$A" 123 $echo
super_read_only,transaction_read_only/tx_read_only, innodb_read_only 又是限定啥的呢?...super_read_only当设置super_read_only=ON的时候, 会自动设置read_only=ON比read_only多限制了有super权限的账号..../tx_read_only5.7.20 的时候 tx_read_only改名为transaction_read_only了....所以对已连接的会话不生效innodb_read_only 更像是对文件做了只读.设置super_read_only = on 会自动设置 read_only=on设置read_only=off 会自动设置...稳一点的话, 设置super_read_only.-- 设置只读set global super_read_only=on;-- 关闭只读set global read_only=off;super_read_only
阻塞与非阻塞 应用进程请求I/O操作时,如果数据未准备好,如果请求立即返回就是非阻塞,不立即返回就是阻塞。简单说就是做一件事如果不能立即获得返回,需要等待,就是阻塞,否则就可以理解为非阻塞。...阻塞 阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。有人也许会把阻塞调用和同步调用等同起来,实际上它们是不同的。...非阻塞 非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。...同步/异步与阻塞/非阻塞的组合 同步阻塞形式: 等待执行结果是一直等待,执行时线程挂起(未对fd 设置O_NONBLOCK 标志位的read/write 操作) 同步非阻塞形式:等待执行结果是一直等待,...执行时函数立即返回(对fd 设置O_NONBLOCK 标志位的read/write 操作) 异步阻塞形式:不是在处理消息时一直等待(通过状态、通知,或回调函数通知主调函数select ),而是在等待消息被触发时被阻塞
以调用函数为例, 同步指的是调用方主动查询返回结果,异步是等待被调用方通知查询结果 阻塞是等待返回结果的时间内挂起,非阻塞是等待返回结果的时间内可以干其他事情....同步和阻塞完全不是一件事,是否同步指的是获取返回结果的方式,是否阻塞指的是等待获取结果的时间内是否可以干其他事情
什么是阻塞和非阻塞 阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值。...阻塞与非阻塞:针对函数(程序)运行的方式,在IO未就绪时,是等待就绪还是直接返回(执行别的操作)。...阻塞与非阻塞的区别: 阻塞是程序在调用系统函数IO时,在系统执行系统调用时由CPU通过轮询等方式来实现数据的IO。 非阻塞是在程序级别通过轮询/信号/事件的机制,去查看IO数据是否就绪。...可以是阻塞或非阻塞,阻塞则一直在等待内核/应用程序把IO数据准备好,非阻塞则是直接返回内核/应用程序是否已经准备好数据。 应用程序框架:同步或异步。...IO多路复用,同步,异步,阻塞和非阻塞 区别 关于异步,同步,阻塞与非阻塞 解读I/O多路复用技术
这里讲的都是基于IO的 阻塞、非阻塞、同步、异步 ---- 一个典型的IO操作包括了两个阶段,数据准备和数据读写。比如说现在要使用 recv 执行一个读操作,数据就绪就是远端是否有数据可读。...当IO工作在阻塞状态下的时候,如果数据没有就绪,recv就会阻塞当前线程;如果说IO工作在非阻塞状态下,会立即返回。...一个同步IO接口的示例: char buf[1024]; int sz = recv(sockfd,buf,1024,0); //阻塞:一直在这儿死等 //非阻塞:时不时的回来问一下 if(sz>0)...异步IO接口: #include int aio_read(struct aiocb *aiocbp); int aio_write(struct aiocb *aiocbp); #include...---- 五种IO模型 阻塞: 非阻塞: 多路IO复用 信号驱动: 这里就完全放飞自我了 异步: ---- Reactor反应堆模型 One loop per thread
read命令 read命令被用来从标准输入读取单行数据,这个命令可以用来读取键盘输入,当使用重定向以及默认选项的情况下,可以读取文件中的一行数据,此时read会将换行符视为行尾,但是可以使用-d选项更改...-r: 使用原始输入,具体来说,这个选项使read按字面意思解释反斜杠,而不是将它们解释为转义字符。 -s: 当read从终端获取输入时,不显示按键。...while read text do echo "$text" done 读取终端的输入,指定一个输入的超时时间。...参考 https://www.computerhope.com/unix/bash/read.htm https://www.runoob.com/linux/linux-comm-read.html...https://linuxize.com/post/how-to-read-a-file-line-by-line-in-bash/
我们可能都已经听过阻塞非阻塞的概念,本文以tcp中的connect系统调用为例子(基于1.12.13内核,新版的原理类似,但是过程就很复杂了,有时间再分析),分析阻塞和非阻塞是什么并且看他是如何实现的。...sock->state = SS_CONNECTED; // 返回成功 return(0); } 我们看到connect函数首先会调用tcp层的函数发送一个sync包,然后根据socket的属性(阻塞非阻塞...,可以通过setsocketopt设置)做下一步处理,如果是非阻塞,那么就比较简单,直接返回给应用层。...这也是非阻塞+事件驱动架构中的做法。因为这种架构下通常是单进程的,要避免阻塞进程,那么返回后什么时候才能知道连接成功呢?...以上就是进程阻塞和非阻塞的原理。
阻塞 阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。有人也许会把阻塞调用和同步调用等同起来,实际上他是不同的。...非阻塞 非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。...对象的阻塞模式和阻塞函数调用 对象是否处于阻塞模式和函数是不是阻塞调用有很强的相关性,但是并不是一一对应的。...阻塞对象上可以有非阻塞的调用方式,我们可以通过一定的API去轮询状态,在适当的时候调用阻塞函数,就可以避免阻塞。而对于非阻塞对象,调用特殊的函数也可以进入阻塞调用。...阻塞/非阻塞则是小明的等待方式,或者说 API 调用者的等待方式。 在不同的场景下,同步/异步、阻塞/非阻塞的四种组合都有应用。
:”发送操作被阻塞了!!!...阻塞 阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。有人也许会把阻塞调用和同步调用等同起来,实际上它们是不同的。...非阻塞 非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。...对象的阻塞模式和阻塞函数调用 对象是否处于阻塞模式和函数是不是阻塞调用有很强的相关性,但是并不是一一对应的。...阻塞对象上可以有非阻塞的调用方式,我们可以通过一定的API去轮询状态,在适当的时候调用阻塞函数,就可以避免阻塞。而对于非阻塞对象,调用特殊的函数也可以进入阻塞调用。
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?...而在用户进程这边,整个进程会被阻塞。当kernel一直等到数据准备好了,它就会将数据从kernel中拷贝到用户内存,然后kernel返回结果,用户进程才解除block的状态,重新运行起来。...从用户进程角度讲 ,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道数据还没有准备好,于是它可以再次发送read操作。...用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面,从kernel的角度,当它受到一个asynchronous read之后,首先它会立刻返回,所以不会对用户进程产生任何block。...does not cause the requesting process to be blocked; 两者的区别就在于synchronous IO做”IO operation”的时候会将process阻塞
阻塞和非阻塞 阻塞:是指IO操作需要彻底完成后才能返回用户空间。 非阻塞:是指IO操作被调用后立即返回一个状态值,无需等待IO操作完成。...阻塞和非阻塞(线程内调用) 阻塞和非阻塞是对于一个线程来讲的,在任意时刻,线程要么是处于阻塞的,要么是出于非阻塞的。 阻塞和非阻塞关注的程序等待调用结果(消息,返回值)时的状态。...阻塞调用是指调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会返回。 非阻塞调用是指不能立刻得到返回结果之前,该调用就不会阻塞当前线程。
Java提供两种方式来实现阻塞式和非阻塞式,阻塞式使用锁实现,非阻塞式使用CAS方式实现。使用阻塞队列和非阻塞队列的场景还有很多,比较常用的就是我们常说的生产者\消费者模型。...非阻塞队列 ConcurrentLinkedQueue——无界非阻塞队列 ? ?...阻塞队列 Java提供了一个阻塞队列的接口——BlockingQueue,在队列的基础上增加可阻塞添加元素和可阻塞获取元素的方法。 ? ?...,当有入队时则会唤醒阻塞的出队操作线程;当队列满时,进行入队操作的线程将被阻塞,当有出队时则会唤醒阻塞的入队操作线程。...当队列为空(或队列为满)时,消费者(或生产者)线程会进入阻塞状态,使用线程的阻塞/通知模型,来通知阻塞的线程。
阻塞和非阻塞 对于阻塞和非阻塞,其实更关心的是进程的状态,如果函数返回结果之前,主进程被挂起,也就是处于阻塞状态,那这时候整个过程是阻塞的;如果结果返回之前,主进程状态是非阻塞的,那整个过程是非阻塞。...这时候关心的是你是否在等待结果,有没有不管这件事 阻塞与非阻塞: 你打电话问书店老板有没有《分布式系统》这本书,你如果是阻塞式调用,你会一直把自己“挂起”,直到得到这本书有没有的结果,如果是非阻塞式调用...int len = sizeof(struct sockaddr); fd = accept(sfd, &remote, &len); res = read...检测event #aceept监听 #等待数据 while (1) { memset(buf, 0, BUF_SIZE); res = read...if (errno == EAGAIN) { break; } else { perror("ERROR : read
为了避免这样的极端的情况MONGODB 在3.2版本后,提出了一个概念 read concern ,其中本意是你读到的数据是不能被回滚的,必须是在MONGODB 中的大多数都被写入的数据....如果想配置这个选择项需要在配置文件中加入 enableMajorityReadConcern: true 这里需要关注2个问题 1 如果我打开了 read concern 我读取的数据一定是最新的吗...concern,则你的这个大多数就不在成立了,此时你的cache 的压力会猛增, 所以注意如果你使用 PSA的架构,那就不太建议你打开这个READ CONCERN....并且还有提示,如果你不使用这个功能则可以保证你的系统运行是平稳的,那么问题就来了,如果我不使用这个功能, 但我想保证在极端的情况下,我的数据不会因为回滚而造成 dirty read....(当然风险和性能方面的铤而走险就需要均衡利弊了) 所以,read concern 本身是可以不去设置,但我们可以通过write concern 来弥补一些我们需要数据在多节点一致性的问题.
阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务。 非阻塞:非阻塞调用是指调用结果返回之前,当前线程不会被挂起,能够执行其他业务。...阻塞和非阻塞是与线程相关的,阻塞非阻塞是等待消息通知时的状态角度来说的。 同步依赖消息的同步返回,异步是通过状态,回调和通知的方式实现的。...阻塞与非阻塞: 如果上面排队和取号之后,我们什么都不做,只是等待通知到我们去办理业务,那就是阻塞的。 如果我们这个时候去吃了一波鸡,那就是非阻塞了。...同步阻塞:是用户层的读或写的请求转换成内核的I/O请求,直到I/O请求阻塞(阻塞,读到数据返回,读不到一直等待)结束,才结束用户层的请求。...总结:同步和异步仅仅是关注的消息如何通知的机制,而阻塞与非阻塞关注的是等待消息通知时的状态。
阻塞与非阻塞 阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态。 阻塞调用是指调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会返回。 ...非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。 ...还是上面的例子: 你打电话问书店老板有没有《分布式系统》这本书,你如果是阻塞调用,你会一直把自己挂起,直到得到这本书有没有的结果,如果是非阻塞调用 你不管老板有没有告诉你,你自己先一边去玩了,当然你也要偶尔过几分钟...阻塞与非阻塞与是否同步异步无关。 总结: 阻塞:进程给CPU传达一个任务之后,一直在等待CPU处理完成,然后才执行后边的操作。 ...非阻塞:进程给CPU传达一个任务之后,继续处理后续的操作,隔段时间再来询问之前的操作是否完成,这样的机制也叫轮询。
---- title: How to read papers tags: 深度学习,机器学习,数据挖掘, grammar_mindmap: true renderNumberedHeading:...once for keywords; read slowly to make sense....Phase II: Getting the punch line Read the abstract once fast for keywords; read slowly to make sense....Read introduction. Easy & Informative in background. References sited by introduction....Read the results section. Read the discussion. Study the figures and tables.
前言 Openpyxl 是一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的开源库 A Python library to read/write Excel 2010 xlsx...from openpyxl import load_workbook In [2]: 只读打开 In [2]: wb=load_workbook(filename='/tmp/test.xlsx', read_only...0x7f835814e630> In [5]: 选择分页 顺便可以展示一下属性 In [5]: ws=wb['test1'] In [6]: ws Out[6]: <openpyxl.worksheet.read_only.ReadOnlyWorksheet
领取专属 10元无门槛券
手把手带您无忧上云