jjzjj

java - 检测并发修改?

coder 2024-03-09 原文

在我正在处理的多线程应用程序中,我们偶尔会在我们的列表(主要是 ArrayList,有时是 Vectors)上看到 ConcurrentModificationExceptions。但也有其他时候我认为并发修改正在发生,因为遍历集合似乎缺少项目,但没有抛出异常。我知道 ConcurrentModificationException 的文档说您不能依赖它,但我将如何确保我没有同时修改列表?将对集合的每次访问都包装在一个同步块(synchronized block)中是防止它发生的唯一方法吗?

更新:是的,我知道 Collections.synchronizedCollection,但它不能防止有人在您循环访问集合时修改集合。我认为,当有人在我遍历集合时向集合中添加内容时,至少会出现一些问题。

第二次更新 如果有人想像 Jason 一样提到 synchronizedCollection 和克隆,同时提到 java.util.concurrent 和 apache 集合框架,如 jacekfoo 和 Javamann,我可以接受一个答案。

最佳答案

根据您的更新频率,我最喜欢的一个是 CopyOnWriteArrayList 或 CopyOnWriteArraySet。他们创建一个新的更新列表/集合以避免并发修改异常。

关于java - 检测并发修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75014/

有关java - 检测并发修改?的更多相关文章

  1. php - 如何检测 session 何时结束 - 2

    有没有办法检测到有人何时离开您的网站?到目前为止,我知道如何使用ignore_user_abort(),但就我所知而已。我需要知道这一点的原因是因为我需要一个脚本来在有人离开网站时执行。 最佳答案 在数据库中为每个用户记录一个时间戳,并在每次页面加载时更新(或通过AJAX)。当最后更新的时间戳早于一定时间(30分钟?)时,您可以认为他们已经离开网站并执行您的代码,然后删除条目。想法:“用户”可以是由他们的IP和用户代理组成的主键,例如MD5哈希。 关于php-如何检测session何时结

  2. php - 人脸检测和图像组合 - 2

    今天我遇到了一个有趣的问题。这就是我所拥有的:2张带有类人动物的图像(例如人类和兽人图像)这就是我必须要做的:将它们结合起来,就像人类的“兽人妆”一样,他的皮肤变绿了,脂肪变少了,等等......我有RubyonRails和PHP程序员怎么在服务器上做呢?有做类似人员的引擎吗?听说过openCV等检测人脸的工具,但是人脸组合呢?你知道,有些网站将2个名人合二为一我需要一些资料和例子。我知道有一些网站像this.我想知道是否有一些免费代码。总的来说,这个演示非常适合我,尽管源不是免费的...... 最佳答案 漂亮的面孔蒙太奇不是一项微

  3. php - 如何检测服务器空间是否足够上传文件? - 2

    我有上传网站,我想知道如何通过php知道服务器的空间?例如:if($_FILES...){if($server_rest_spaceenoughforthefile){//uploadit!}else{echo'nospaceonyourserverenough!';//thereisnospace!!}重要的另一个问题,如果服务器已满!还有一些上传的文件会不会出错?谢谢 最佳答案 尝试使用disk_free_space() 关于php-如何检测服务器空间是否足够上传文件

  4. php - Firefox 检测到服务器正在以一种永远不会完成的方式重定向对此地址的请求 - 2

    关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我正在尝试使用jobberland脚本开发一个求职网站。但是在连接到服务器时,在Firefox的所有页面上都显示以下错误:Firefoxhasdetectedthattheserverisredirectingtherequestforthisaddressinawaythatwillnevercomplete.你能帮我解决这个问题吗?是脚本问题还是数据库问题(正如我搜索此查询时某些网站所解释

  5. php - 有没有可以检测 PHP 访问者所在国家/地区的 Web 服务? - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我使用PHP,我想知道是否有可以检测访问者所在国家/地区的免费网络服务。现在我可以获得他们的IP,并且我已经下载了一些与某些位置相关的IP表,但我认为它们不太准确。因此,如果您知道一些免费的网络服务,那就太好了。谢谢!

  6. php - 使用 PHP 检测选择的浏览器语言 - 2

    我正在尝试实现此代码,以便为所选的德语、西类牙语或英语浏览器语言加载不同的文件。情况是,使用我的西类牙语IE,我仍然得到英文文件。<?phpif(is_home()){if(preg_match('/de-DE/i',$_SERVER['HTTP_ACCEPT_LANGUAGE'])){include(TEMPLATEPATH.'/german-navbar.php');}elseif(preg_match('/es-ES/i',$_SERVER['HTTP_ACCEPT_LANGUAGE'])){i

  7. php - substr '-' 之后和在字符串中检测到 ',' 之后的所有内容停止并再次执行,如何? - 2

    我有一个看起来像这样的字符串:earth-green,random-stuff,coffee-stuff,another-tag我正在尝试删除'-'后面的所有内容,但是当检测到','或''时,停止并重做该过程,以便传出字符串变为earthrandomcoffeeanothersubstr($func,0,strrpos($func,'-'));删除第一个'-'之后的所有内容 最佳答案 最简单的方法是使用explode(通过按字符拆分将字符串转换为数组),所以按逗号拆分http://php.net/explode然后对

  8. php - 将 Facebook 检测为推荐人? - 2

    我有一个禁止正常访问的封闭测试版网站-访问者必须先登录才能查看该网站。我还有一个secret的Facebook群组,我们经常在其中分享网站文章的链接(供讨论)。问题是,当我们粘贴链接时,Facebook会尝试获取它的预览但失败了,因为它被认为是未登录的用户。所以简而言之,我希望该网站只对Facebook公开。这些是我提出的解决方案:检测引荐来源网址:失败,引荐来源网址为空-可能是因为FB从HTTPs浏览网站?检测客户端IP:对此不确定。FB服务器有固定IP地址吗?搜索FB在浏览我的网站时使用的“Facebook查询字符串”-类似于mysite.com/?from=I'm-Faceboo

  9. php - 如何检测鼠标光标在div中的位置 - 2

    这个问题在这里已经有了答案:Findmousepositionrelativetoelement(29个答案)关闭9年前。我有一个100像素宽的矩形跨度,我希望用户从0-100%中进行选择。无论他们在div中沿宽度方向单击什么位置,该值都会被保存并立即使用ajax显示给用户。因此,如果他们恰好在div的中间单击,则节省的值将为50%。我想不出一种优雅的方式来做到这一点!有什么建议吗?

  10. php - 如何检测 icecast/shoutcast 流是否存在? - 2

    网站上有5个流。我需要检测这些流是否存在。如果没有,可以播放一些音频文件。我正在使用html5播放流,流url如下所示:http://locus.creacast.com:9001/StBaume_grotte.ogg我尝试了不同的方法,但似乎没有用。从未检测到流。解决方案1:在这里,我只是尝试检查文件是否存在。if(file_exists($stream_1)){$debug_output_stream_1="Lefichier$stream_1existe.";$erreur_404_Stream_1=true;}else{$debug_output_stream_

随机推荐

  1. php - htaccess 重写规则请求 URI 问题 - 2

    如果站点名称没有REQUESTURI那么index.php应该来否则如果URL是example.com/key文件pages.php?tkey=key应该来。当我以这种方式设置时,子文件夹中的图像不会加载RewriteRule^/?$index.php[L]RewriteRule^(.*)$pages.php?page_keytkey=$1[L]请多多指教 最佳答案 尝试防止PeterSzymkowski指出的递归循环。还请考虑不要像MichaelBerkowski所说的那样重定向现有文件。RewriteRule^/?$index.

  2. php - 如何禁用所有文件上传到服务器? - 2

    有没有办法通过php.ini或.htaccess禁止所有文件上传到服务器?唯一的问题是,我希望有一个文件夹(例如管理文件夹)仍然可以上传。我在考虑何时禁用eval和exec。这个问题源于我看到感染了恶意软件的网站,这些网站位于服务器的所有随机位置-我最近看到的一个例子类似于:eval(gzinflate(base64_decode("HZ3fdsfHjtfvdqlkdsfabf5Y7OAQfMCRc9YKaYc5o0mHOmmJ6+....));位于服务器上名为stp.php的文件中。我的想法是,如果网站用户不需要访问权限来上传文件(他们不需要),那么应该简单地禁用它。

  3. php - 在没有数据库访问权限的主机上创建基于 php 的博客 - 2

    关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion我要为一所大学创建一个类似博客的应用程序。我已获得访问他们服务器的权限,但未被授予访问他们数据库的权限。服务器安装了PHP,所以我打算使用它。至少,我想让用户能够发布博客。虽然这不是一个严格的要求,但能够对每篇博文发表评论就更好了。如果我要让应用程序非常简单,我可以只使用平面文件来存储博客文章。但是,在合并注释时使用平面文件会相当笨拙。另一种选择是使用SQLite,但我尚未确认主机上是否安装了它。以上两种

  4. PHP echo 没有按预期工作 - 2

    我有以下PHP代码:$ep1=$tvdb->getEpisodeById($cur->id,'en');var_dump($ep1);它返回这个:object(TvDb\Episode)#60(17){["id"]=>int(4490826)["number"]=>int(12)["season"]=>int(3)["directors"]=>array(0){}["guestStars"]=>array(0){}["writers"

  5. php - 看似随机的 SoapFault : not a valid method - 2

    我的SOAP解决方案出现问题。有时我会收到以下错误消息:Function(functionA)isnotavalidmethodforthisservice8个月后编辑虽然我找不到问题的原因,但我能够解决它。每当我收到来自API的响应时,我都会检查SoapFault并发送另一个相同的请求并使用第二次返回的答案。(作为答案发布)这发生在来自PHP的调用中,例如:functionA()-expectedresponsefunctionA()-expectedresponsefunctionA()-SoapFaultfunctionA()-expectedresponse在上述所有调用中预期

  6. php - Gearman 在 php 示例中抛出 GEARMAN_COULD_NOT_CONNECT - 2

    我在我的服务器上安装了gearmand1.1.5,并在启动服务器后尝试了安装提供的示例。它们工作得非常正确(echo示例有效,反向不按预期工作,但没有给出任何错误)。然后我使用pecl安装了php包装器。该版本是最后一个稳定版本(1.1.1)。显然我将扩展名添加到php.ini,我的php--info|grepgearman输出是:gearmangearmansupport=>enabledlibgearmanversion=>1.1.5PWD=>/root/gearman-1.1.1/examplesOLDPWD=>/root/gearman-1.1.1_SE

  7. php - 如果 include() 是有条件的,即使不满足条件,PHP 也会包含该文件吗? - 2

    这个问题困扰我很久了,我想我应该向专家寻求答案。我想知道通过单个文件汇集所有PHP请求是否是一种糟糕的编程技术。我一直在一个网站上工作,不确定它是否会随着增长而扩展,因为我不能100%确定PHP如何处理include()函数。为了更好地解释我是如何构建我的准框架的,这里是我的根.htaccess文件的一个片段:#>StandardSettingsRewriteEngineOn#IgnoreallmediarequestsRewriteRule^media/-[L]#FunnelallrequestsintomodelRewriteRule^(.*)$_model.php[QSA]

  8. php + sql server 登录和 session - 2

    你好,我正在尝试用php创建一个用于sqlserver的登录和session脚本,但我无法让它工作,无论我在登录表单中输入什么,只要它验证它可以工作,它就像我输入的一样,我无法弄清楚代码有什么问题,但是,我刚刚开始使用php和sqlserver并且还没有获得知识来解决我自己的问题如果soeone可以帮助那会很棒,如果你知道任何使用sqlserver和php的优秀教程网站,您能否分享一下,因为遗憾的是,对于他们来说,没有那么多优秀的教程网站。在这个阶段非常欢迎任何帮助。我的主要问题是,它不检查以html形式发布的信息是否存在于数据库中。(我已经取出了js验证,因为它不需要接缝,但它有效)

  9. php - 在一条语句中插入 IGNORE INTO 和 UPDATE - 2

    我正在运行一个为我的用户提供下载服务的脚本。我想在每个字节级别上监控他们的流量,并且我在$bytes中保存了他们下载的字节数。我想将它记录到我的数据库中,我正在使用以下函数:register_shutdown_function(function(){global$bytes;/*Savethetraffictothedatabase*/$db=newPDO('mysql:host=localhost;dbname=test','root','');$st=$db->prepare('INSERTIGNOREINTO`stat

  10. php - 打开模态窗口 "using"PHP - 2

    我正在用PHP创建一个登录系统,并试图让它变得更好一些。当您注销时,您将被重定向回index.php。像这样:header("loaction:index.php?logout=true")这使得url看起来像www.mysite.com/index.php?logout=true。然后我使用以下代码:if(isset($_GET['logout'])){$logoutvalue=$_GET['logout'];if($logoutvalue="true"){$notification="You'vebee