有什么区别:
可以是异步和非阻塞(以及基于事件的)吗?
在编程中最重要的是拥有一些东西:异步,非阻塞和/或事件库(或全部3)?
如果你能提供一些例子,那就太棒了.
这个问题正在被问到,因为我正在阅读关于类似主题的这篇伟大的StackOverflow文章,但它没有回答我上面的问题.
asynchronous programming-languages event-based-programming nonblocking blocking
根据昌昌的回答更新:
我怎样才能在shell(Ubuntu)中看到这些线程?我用ps -eLf | grep节点| grep -v grep只看到两个:
root 16148 7492 16148 0 2 20:43 pts/26 00:00:00 ./bin/node /home/aaron/workspace/test.js
root 16148 7492 16149 0 2 20:43 pts/26 00:00:00./bin/node /home/aaron/workspace/test.js
在这个问题的回答中——
Node.js 中的非阻塞或异步 I/O 是什么?
这个描述听起来与普通 js 中的事件循环没有什么不同。两者有区别吗?如果不是,事件循环是否只是简单地重新命名为“异步非阻塞 I/O”,以便更容易地销售 Node.js 而不是其他选项?
我想限制 CPU 内核和线程。所以我找到了三种方法来限制这些。
1) “Keras 后端 + Tensorflow”
from keras import backend as K
import tensorflow as tf
config = tf.ConfigProto(intra_op_parallelism_threads=2, \
inter_op_parallelism_threads=4, \
allow_soft_placement=True, \
device_count = {'CPU': 1})
session = tf.Session(config=config)
K.set_session(session)
Run Code Online (Sandbox Code Playgroud)
2) “来自 Tensorflow 的 Keras”
import tensorflow as tf
from tensorflow import keras
tf.config.threading.set_intra_op_parallelism_threads(2)
tf.config.threading.set_inter_op_parallelism_threads(4)
Run Code Online (Sandbox Code Playgroud)
3) “来自 Tensorflow 的 keras”
import os
os.environ['TF_NUM_INTRAOP_THREADS'] = '2'
os.environ['TF_NUM_INTEROP_THREADS'] = '4'
Run Code Online (Sandbox Code Playgroud)
这三种方式影响一样吗?
最后我理解了我在下面写的参数
这是正确的吗?如果我错过了理解,请告诉我。
谢谢你。
假设这是 linux shell,我想做的是:
copy file1 tmp
rename tmp file2
Run Code Online (Sandbox Code Playgroud)
我可以做瀑布
function copyFile(cb) {
child_process.exec('cp file1 tmp', function (error, stdout, stderr) {
......
});
}
async.waterfall([
copyFile,
renameFile
], function (error) {
if (error) {
//handle readFile error or processFile error here
}
});
Run Code Online (Sandbox Code Playgroud)
或者猜我可以做
child_process.execSync('cp file1 tmp");
child_process.execSync('rename tmp file2');
Run Code Online (Sandbox Code Playgroud)
请问有什么区别?例如性能?阻塞?非常感谢 !
其中一个NodeJS最大的特点就是它asynchronous从我正在阅读的内容中开箱即用,但作为一个初学者,如果已经在本地处理这些NodeJS模块async,那么为什么存在?
https://www.npmjs.com/package/async
我认为有一个很好的理由,但对我来说并不明显.是处理callback hell还是Pyramid of Doom.
示例代码中的注释说 delay() 是非阻塞的。应该暂停吗?
https://kotlinlang.org/docs/reference/coroutines/basics.html
fun main() {
GlobalScope.launch { // launch new coroutine in background and continue
delay(1000L) // non-blocking delay for 1 second (default time unit is ms)
println("World!") // print after delay
}
println("Hello,") // main thread continues while coroutine is delayed
Thread.sleep(2000L) // block main thread for 2 seconds to keep JVM alive
}
Run Code Online (Sandbox Code Playgroud) javascript ×4
node.js ×4
asynchronous ×3
blocking ×2
async.js ×1
event-loop ×1
io ×1
keras ×1
kotlin ×1
libuv ×1
linux ×1
nonblocking ×1
python ×1
synchronous ×1
tensorflow2 ×1