我的第一个问题:根据标题。
我之所以问这个问题是因为我遇到了一个 StackExchange 问题:多个线程可以做哪些单线程不能做的事情?
在该链接中给出的解决方案之一中,无论多线程可以做什么,它也可以由单线程完成。
然而我不认为这是真的。我的论点是:当我们用套接字编程构建一个简单的聊天程序并通过命令控制台运行它时。如果聊天程序是单线程的。聊天程序实际上是半双工的。这意味着我们不能同时听和说,每次只有一方可以说话,另一方必须听。为了让双方能够同时交谈和接收消息,我们必须用多线程来实现它。
我的第二个问题:我的论点正确吗?还是我在这里遗漏了一些要点,因此单个线程仍然可以完成多线程所做的一切?