
问题记录
proteroh
谢谢您的关注,欢迎一起交流学习
展开
-
多进程并行计算
两个进程分别对共享变量加100次,结果为200。原创 2024-12-05 20:07:53 · 147 阅读 · 0 评论 -
scanf 输入 存入输入缓冲区 问题
1. **`scanf` 跳过空白字符**:当 `scanf` 读取数字、字符串、浮点数等常规数据类型时,它会自动忽略缓冲区中的空白字符(空格、Tab、换行符)。这时,输入的字符就是 `'\n'`,所以程序会输出换行符。2. **连续使用 `scanf`**:如果调用 `scanf` 读取的都是标准数据类型(如 `%d`、`%f`、`%s` 等),不会因为缓冲区中的空白字符而出现问题。2. **使用 `%c` 格式符读取字符** 时可能出现问题,因为 `%c` 不会跳过空白字符,而是直接读取缓冲区的内容。原创 2024-11-14 21:44:02 · 529 阅读 · 0 评论 -
unix网络编程:解决小型聊天室的用户私发消息问题
可以看到,Tom给Bill、Lily群发一个问候消息,Lily私发消息回应Tom。思路:在服务端的用户链表中找到要私发的用户名,用其节点里的。发消息,就可以达到私发的效果。今天老师布置了一个在线聊天室。原创 2024-10-24 21:03:04 · 1031 阅读 · 0 评论 -
解决 基于线程的并行通信服务 多线程竞争的问题
由此可见,是客户2的套接字端口占用了客户1的,此时只有一个正常通信的套接字端口即客户2的Socket。如果对等线程在主线程执行第78行创建新的conn之前就执行了第15行,那么对等线程就得到正确的通信端口。在我们的系统中它失败了,但是在其他系统中,它可能就能正确工作,让程序员“幸福地”察觉不到程序的严重错误。若客户2也和服务端建立起连接,会创建一个新的conn与对等线程1里使用的conn1竞争。后,便把conn的地址传到对等线程1里去,在对等线程1里使用conn1这个端口。原创 2024-10-17 23:39:14 · 1011 阅读 · 0 评论