【译】「结构化并发」简析,或:有害的go语句
原博文(@vorpalsmith) 写于 2018年4月25日 每种并发API都有其并发执行代码的方式。下面是几个看上去使用了不同API的例子: go myfunc(); // Golang pthread_create(&thread_id, NULL, &myfunc); /* C with POSIX threads */ spawn(modulename, myfuncname, []) % Erlang threading.Thread(target=myfunc).start() # Python with threads asyncio.create_task(myfunc()) # Python with asyncio 符号和术语的区别不影响语义的一致:它们都安排 myfunc 开始与程序的其余部分并发运行,然后立即返回以便父程序执行其他操作。 另一种选择是使用回调: QObject::connect(&emitter, SIGNAL(event()), // C++ with Qt &receiver, SLOT(myfunc())) g_signal_connect(emitter, "event", myfunc, NULL) /* C with GObject */ document.getElementById("myid").onclick =