【问题标题】:inputting in a multithreaded process在多线程进程中输入
【发布时间】:2017-12-12 17:07:27
【问题描述】:

嘿,我现在正在学习网络和 BSD 套接字,我想创建一个群聊。所以在创建多线程服务器(每个用户 1 个线程)之后,我现在有一个问题。

所以基本上我的服务器是这样工作的。每个线程等待其客户端发送按摩,然后发送给聊天中的所有其他用户。现在我在想我是否必须让客户端程序成为 2 个线程。一个线程将始终等待来自服务器的消息,而另一个将等待用户输入。

但它会起作用吗??如果我只写第二个线程 cin>>massage;一切都会好吗?

如果我的输入调度程序在中途决定将 CPU 分配给第一个线程怎么办。

【问题讨论】:

  • 为什么不试试看呢?这是最好的学习方式。

标签: c++ multithreading networking


【解决方案1】:

您没有拥有多线程客户端。可以,但不是必需的。

查看select()poll() 以查看您的套接字是否已准备好进行读取。对于单线程程序,您只需在准备好数据时交错读取和写入,其余时间使用sleep()sched_yield()

【讨论】:

    猜你喜欢
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多