Alibabacloud.com offers a wide variety of articles about node js event loop monitoring, easily find your node js event loop monitoring information here online.
first, let's explain what the event loop is:As far as we know, the browser's JS is single-threaded, that is, at the same time, at most only one code snippet is executing, but the browser can handle the asynchronous request very well, then exactly why is it? Let's take a look at a picture (this picture comes from http://www.zcfy.cc/article/
:
var asnyc = function (callback) {Process.nexttick (callback);};After the call to Async (), the callback is stored until the next event loop (tick) is removed for execution. An attempt to try/catch an asynchronous method can only catch exceptions that occur within the secondary event loop. The exception thrown when t
Event polling (reference)Event polling is the core content of node. A system (or a program) must contain at least one large loop structure (what I call a "pump"), which is a prerequisite for sustaining the system's continuous operation. The same structure is included in Nodejs, which we call "
On JS event Monitoring1, before talking about event monitoring, first to understand what is the JS event?We all know that JS is a dynamic data type of language, you can make us in the o
threads, concurrency problems often make you stuck in the box ).
In node. js, you do not need to worry about the occurrence of your code on the backend. You only need to use the callback when you perform I/O operations. You will be guaranteed that your code will not be interrupted, and I/O operations will not block other requests (because there is no overhead required by those threads/processes, for exampl
Introduction and Materials
Http://nodejs.org/api/events.html
Http://www.infoq.com/cn/articles/tyq-nodejs-event
Events is the most important module of node. js. The events module provides only one events. EventEmitter object. The core of EventEmitter is event launch and event
places call it the main thread). In fact, JavaScript's browser environment is not the same as the way we write JavaScript code, and many tasks of parallel processing, it is necessary to multi-threading, for example:For example, the single thread in node. JS is referring to this primary thread. This main thread has a looping structure. Keep the whole program running (the code you wrote).
, found that the micro-task queue is empty, then go to the macro-benevolence queue to find, found that we have just put in the settimeout callback function, then take out this task to execute, so immediately after the output 1Console.log (4);Copy the code to see the above explanation, we are not all understand, is not straight call simple ~So let's take a look at the event execution ring in the node environ
outputbtn。 6, event agent because the event will propagate up to the parent node in the bubbling phase, so the listener function of the node can be defined on the parent node, and the listener function of the parent node handles
, data) {if (err) {Console.log (Err.stack);Return}Console.log (Data.tostring ());});Console.log ("program execution Complete");The above program Fs.readfile () is an asynchronous function used to read the file. If an error occurs during the reading of the file, the error Err object will output an error message.If no error occurs, ReadFile skips the output of the Err object, and the contents of the file are output through the callback function.Execute the above code and execute the result as foll
request to another. In an I/O call, the code saves the callback function and returns control to the runtime environment of node. js. The callback function is called when the data is available.Of course, in the background, there are threads and processes for database access and execution processes. However, this does not expose the code, so you do not need to worry about I/O operations, for example, the dat
In JS, it is a common problem to use loops to bind events to elements of a pair of element queues.People who usually enter the wrong way will write code like this: (assuming that the element queue is O, jquery is used by default)Error methodvar o =$ ('. Blockhead '); for (var i=0; iOf course, in this case, you will find that each element clicked to run, the I value displayed is o.length-1;Because the function of J
= True, because the last B module output is done=true AH;Then output A.done ; A module is finished running.To this, a, b two modules are loaded, in main although there is a reference to the B module, but will not be executed.And then the last thing we see is the output in Main, A.done=true, B.done=true. variantsWe change the statement of a, B module as follows:We removed two of the lines of the black line, and now what does the output turn out to be?Please see:Here is not carefully analyzed, le
not implemented asynchronously, there are possible ways of handling a thread for each connection, how many threads are established for each of the connections, and each thread is independent of each other. At first glance, there's no problem with this, but it's a cost to know that threading is being created, and it's hard to deal with the number of connections that you're dealing with, creating threads that waste a lot of resources.The disadvantage of node
This article mainly introduced JS use for loop coordinate array traversal child node lookup element
function Nextchildnode (node,clazz,tagname) {
var count= node.childelementcount;
for (Var i=0;i
be done in parallel To deal with this kind of management. Apart fromI/Ocalled,node. jsIt is hoped that all requests can be returned quickly;CPUintensive tasks should be separated into another process, then interacted through events, or by using an abstract concept likewebworkers. It(obvious.)It means you can't parallelize your code unless there's another thread in the background that you can interact with through events. Basically all the objects tha
In the previous article, "in Ext JS 5 using Viewcontrollers", a simple introduction of the Ext JS 5 An important improvement--declarative event monitoring. In this article, we will explore in depth how to use declarative event snooping to simplify the view of your applicatio
should be designed as a single thread. Does JS have the possibility of multithreading? The answer is yes, HTML5 presents the Web worker standard, however,"To take advantage of the computational power of multicore CPUs, HTML5 proposes a web worker standard that allows JavaScript scripts to create multiple threads, but the child threads are completely controlled by the main thread and must not manipulate the DOM." So, this new standard doesn't change t
Original: Declarative Listeners in Ext JS 5In the previous article, "in Ext JS 5 using Viewcontrollers", a simple introduction of the Ext JS 5 An important improvement--declarative event monitoring. In this article, we will explore in depth how to use declarative
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.