我正在编写一个程序,直接从用户输入读取数据,并想知道我怎么能(没有循环)读取所有数据,直到标准输入EOF.我正在考虑使用,cin.get( input, '\0' )
但'\0'
不是真正的EOF角色,只读到EOF或者'\0'
以先到者为准.
或者使用循环是唯一的方法吗?如果是这样,最好的方法是什么?
我试图阻止多线程服务器中的数据争用.我的问题如下:有一个List<RServer>
,类型RServer
是一个有几个字段的类.现在,服务器有几个线程全部同时运行,他们可以修改List
(添加更多项)和单个RServer
实例(更改字段).
因此,我的策略是readonly object RServerLock = new object( )
在每个RServer
实例中创建一个并且另外readonly object RServerListLock = new object( )
包含所有修改List
a (或RServer
实例)的代码lock
.这样安全吗?如果一个线程试图锁定一个RServerLock
而另一个锁定它会发生什么?