问题列表 - 第3371页

许多线程或尽可能少的线程?

作为一个侧面项目,我正在为一个我曾经玩过的古老游戏编写服务器.我试图让服务器尽可能松散耦合,但我想知道什么是多线程的好设计决策.目前我有以下一系列行动:

  • 启动(创建) - >
  • 服务器(侦听客户端,创建) - >
  • 客户端(侦听命令并发送期间数据)

我假设平均有100个客户,因为这是游戏任何给定时间的最大值.对于整个事物的线程,什么是正确的决定?我目前的设置如下:

  • 服务器上的1个线程侦听新连接,在新连接上创建客户端对象并再次开始侦听.
  • 客户端对象有一个线程,侦听传入命令并发送定期数据.这是使用非阻塞套接字完成的,因此它只检查是否有可用的数据,处理该数据然后发送已排队的消息.登录在发送 - 接收周期开始之前完成.
  • 一个线程(现在)用于游戏本身,因为我认为从架构上讲,它与整个客户端 - 服务器部分是分开的.

这将导致总共102个线程.我甚至考虑给客户端2个线程,一个用于发送,一个用于接收.如果我这样做,我可以在接收器线程上使用阻塞I/O,这意味着线程在平均情况下将大部分处于空闲状态.

我主要担心的是,通过使用这么多线程,我将占用资源.我并不担心竞争条件或死锁,因为这是我无论如何都要处理的事情.

我的设计是这样设置的,我可以使用单个线程进行所有客户端通信,无论它是1还是100.我已将通信逻辑与客户端对象本身分开,因此我可以实现它而无需重写很多代码.

主要问题是:在应用程序中使用超过200个线程是错误的吗?它有优势吗?我正在考虑在多核机器上运行它,它会像这样多个核心占用很多优势吗?

谢谢!


在所有这些线程中,大多数线程通常会被阻塞.我不认为连接速度超过每分钟5次.来自客户端的命令很少会出现,我平均说每分钟20个.

按照我得到的答案(上下文切换是我正在考虑的性能打击,但我不知道,直到你指出它,谢谢!)我想我会采用一个听众,一个方法接收者,一个发送者和一些杂项;-)

language-agnostic multithreading client-server

10
推荐指数
3
解决办法
1354
查看次数

Office文档提示您在匿名SharePoint站点中登录

我有一个配置为匿名访问的MOSS 07站点.此站点中有一个文档库,也启用了匿名访问.当匿名用户单击此库中的PDF文件时,他或她可以正常阅读或下载它.当用户单击Office文档时,系统会提示他或她使用登录框.用户可以在不输入登录的情况下取消此框,并将被带到文档中.

这发生在IE中,但不是FireFox.

我在网上看到一些对此问题的引用,但没有明确的解决方案:http: //www.microsoft.com/communities/newsgroups/en-us/default.aspx?dr = microsoft.public.sharepoint.windowsservices.development&tid = 5452e093 -a0d7-45c5-8ed0-96551e854cec&猫= en_US_CC8402B4-DC5E-652D-7DB2-0119AFB7C906&LANG = EN&CR = US&SLOC = p = 1

http://www.sharepointu.com/forums/t/5779.aspx

http://www.eggheadcafe.com/software/aspnet/30817418/anonymous-users-getting-p.aspx

security sharepoint anonymous

14
推荐指数
2
解决办法
6万
查看次数

有什么方法可以使用带有cleartool/clearcase的自定义diff工具吗?

在clearcase快照视图中工作时,我想使用自己的diff.

据我所知,运行" cleartool diff" 时无法指定diff工具,因此我认为我可以运行像" mydiff <predecessor file> <modified file in my view>" 这样的东西,但我对ClearCase不太了解能够找到"前任"文件"以反对.

有什么办法吗?

忘了提到(直到现在,在阅读了处理windows的前两个响应之后),这是在Unix上,我不允许使用ClearCase配置.

diff clearcase cleartool

46
推荐指数
5
解决办法
4万
查看次数

以编程方式从后面的代码关闭aspx页面

从代码隐藏中关闭ASPX页面的最佳方法是什么?

我有一个按钮事件处理程序,我想在用户单击页面上的ASP.NET按钮后关闭页面.我试图以编程方式添加一个JavaScript方法,其中包含一个window.close()命令到OnClientClick事件关闭页面,但它不起作用.该按钮也asp:AsyncPostBoskTrigger适用于AJAX更新面板.

该应用程序使用.NET Framework 3.5.

c# asp.net

31
推荐指数
6
解决办法
24万
查看次数

如何识别显示的当前视图

如果我有3个不同的视图,它们在3个相应的函数中定义,即:

- (UIView *)getView1 { /*...*/ }
- (UIView *)getView2 { /*...*/ }
- (UIView *)getView3 { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

这些是self.view在需要特定视图时添加的.

我的问题是,我们如何知道目前正在显示哪些观点?是否有参数可以识别哪个视图是当前视图?

cocoa-touch

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

Java相当于PHP的preg_replace_callback

我正在将应用程序从PHP迁移到Java,并且在代码中大量使用正则表达式.我在PHP中遇到过似乎没有java等价物的东西:

preg_replace_callback()
Run Code Online (Sandbox Code Playgroud)

对于正则表达式中的每个匹配,它调用一个函数,该函数将匹配文本作为参数传递.作为示例用法:

$articleText = preg_replace_callback("/\[thumb(\d+)\]/",'thumbReplace', $articleText);
# ...
function thumbReplace($matches) {
   global $photos;
   return "<img src=\"thumbs/" . $photos[$matches[1]] . "\">";
}
Run Code Online (Sandbox Code Playgroud)

在Java中这样做的理想方法是什么?

php java regex preg-replace

33
推荐指数
2
解决办法
7312
查看次数

python中subprocess.PIPE上的非阻塞读取

我正在使用子进程模块启动子进程并连接到它的输出流(stdout).我希望能够在其标准输出上执行非阻塞读取.有没有办法让.readline非阻塞或在我调用之前检查流上是否有数据.readline?我希望这是可移植的,或至少在Windows和Linux下工作.

这是我现在如何做到的(.readline如果没有数据可用,则阻止它):

p = subprocess.Popen('myprogram.exe', stdout = subprocess.PIPE)
output_str = p.stdout.readline()
Run Code Online (Sandbox Code Playgroud)

python io subprocess nonblocking

477
推荐指数
15
解决办法
21万
查看次数

Java hprof问题

在运行java类时使用-agentlib:hprof = cpu = times vs -agentlib:hprof = cpu = sample有什么区别?我知道cpu = sample会导致jvm定期对调用堆栈进行采样,但cpu = times会做什么?

java profiling jvm

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

如何在sql中连接两个字符串并用0填充一个字符串?

我在桌子上有两个字段.一个包含诸如BTA,BEA,REA之类的值.另一个包含1,2,63,103等值.

我想结合2个字段,使它们看起来像BTA001,BTA002,BTA063,BTA103.

请注意,如果数字的长度不是3个字符,我想在数字的左边填充0,使其等于3.

我该怎么做呢?表中的字段称为Type,对应于BTA,BEA和REA,Id是对应于1,2,63和103的字段.

t-sql sql-server

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

这种改组算法的效率和质量如何?

最近关于使用C#随机排序的这个问题让我想到了我有时在Perl中改组数组的方式.

@shuffled = sort { rand() <=> rand() } @array;
Run Code Online (Sandbox Code Playgroud)

在上述问题中提出的解决方案是Fisher-Yates shuffle,它在线性时间内工作.

问题是:我的代码片段效率如何,并且是如此随机"真正"随机?

sorting random perl performance

5
推荐指数
3
解决办法
1152
查看次数