小编hat*_*atz的帖子

与cout和printf的区别在于c ++中的多线程

一些背景:

我有一个使用pthreads多线程的c ++程序.该计划是一个酒店预订系统,有10位客人(每个人都有自己的主题),一个登记台(1个主题)和一个退房服务台(1个主题).酒店只有5间客房可供客人入住.我正在使用信号量在此计划中强制执行互斥和事件订购.

题:

这是我的代码(只是需要的部分......)

sem_init(&openRooms, 0, 5);

sem_wait(&openRooms);   //waits for there to be an open room at the hotel

cout << "Guest " << guestNumber << " waits for check-in." << endl;

sem_wait(&checkInLine); //waits for an open spot at the check-in desk
Run Code Online (Sandbox Code Playgroud)

有5位客人可以同时入住酒店,因为这里有5间客房.当我运行程序时,我得到输出(或类似......)

Guest Guest Guest Guest 24 waits for check-in. waits for check-in.1 waits for check-in. 
3 waits for check-in.
Run Code Online (Sandbox Code Playgroud)

似乎cout允许同时运行多个打印,这就是"Guest"连续多次打印的原因.

我试过用printf做这个,同样的问题不会发生.在另一个线程可以打印语句之前打印整个语句.

sem_wait(&checkInSt); //Only one person at check in receptionist at a time
printf("Guest %ld goes to the …
Run Code Online (Sandbox Code Playgroud)

c++ printf multithreading semaphore cout

4
推荐指数
1
解决办法
1892
查看次数

读取文本文件并将信息插入到新对象中

因此,我有一个文本文件,其中包含以下格式的信息,包括姓名、电子邮件和电话号码。

Bill Molan, Bill.Molan@gmail.com, 612-789-7538
Greg Hanson, Greg.Hanson@gmail.com, 651-368-4558
Zoe Hall, Zoe.Hall@gmail.com, 952-778-4322
Henry Sinn, Henry.Sinn@gmail.com, 651-788-9634
Brittany Hudson, Brittany.Hudson@gmail.com, 612-756-4486
Run Code Online (Sandbox Code Playgroud)

当我的程序启动时,我想读取这个文件并将每一行放入一个新的 Person() 中,我最终会将其添加到列表中。我想读取每一行,然后使用逗号分隔每个字符串以放入 Person() 的构造函数中,这是一个基本类:

public PersonEntry(string n, string e, string p)
{
    Name = n;
    Email = e;
    Phone = p;
}
Run Code Online (Sandbox Code Playgroud)

我做了一些查找,我认为使用流阅读器将有助于读取文本文件,但我不太确定从这里到哪里去。

c# file-io separator

1
推荐指数
1
解决办法
3万
查看次数

什么不能存储在NSDictionary中?

我有一个在线测验我想完成这个问题:

以下之一无法存储在NSDictionary中.它无法存储,因为它是_____类型:

UIView NSNumber NSInteger UIColor

填写空白.


我似乎无法在网上找到答案.据我所知,他们都有办法存储在NSDictionary,任何想法?

objective-c nsdictionary

1
推荐指数
1
解决办法
1310
查看次数