草庐IT

thread_no

全部标签

java - "StringBuilders are not thread-safe"是什么意思?

我阅读了一些有关Java编程语言中String和StringBuilder优缺点的文章。在其中一篇文章中,作者提到:StringBuilderisnotThread-safe,soinmultiplethreadsuseStringBuffer.很遗憾,我无法理解这意味着什么。您能否解释一下String、StringBuilder和StringBuffer之间的区别,尤其是在“线程安全”的上下文中。如果您能用代码示例进行描述,我将不胜感激。 最佳答案 如果多个线程正在修改StringBuilder的同一个实例,结果可能会出乎意料-即

java - 在 Eclipse Luna 中安装新软件总是出现错误 No repository found containing : osgi. bundle,org.eclipse.net4j.jms.api?

我将STS(Spring工具套件)与EclipseLuna4.4一起使用,我注意到每次我尝试通过帮助->“安装新软件”我收到以下错误:Anerroroccurredwhilecollectingitemstobeinstalledsessioncontextwas:(profile=DefaultProfile,phase=org.eclipse.equinox.internal.p2.engine.phases.Collect,operand=,action=).Norepositoryfoundcontaining:osgi.bundle,org.eclipse.net4j.jms

Java/ Spring MVC : provide request context to child threads

我有一个问题,我想将我的SpringWebMVC应用程序的一些进程外包到单独的线程中。这很简单并且有效,直到我想使用一个类userRightService,它使用全局请求。这在线程中不可用,我们遇到了一个问题,这很容易理解。这是我的错误:java.lang.RuntimeException:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'scopedTarget.userRightsService':Scope'request'isnotactiveforthecurre

Python解决(ModuleNotFoundError: No module named ‘tkinter‘)方法

 确保你使用的Python版本是3.x系列的,因为tkinter库在Python2.x系列中被称为Tkinter。尝试手动安装tkinter库。在Windows上,你可以从Python官方网站下载Windows安装程序,并选择安装tkinter库。在Linux上,你可以使用包管理器来安装,例如在Debian/Ubuntu上,可以运行以下命令来安装:sudoapt-getinstallpython3-tk。检查环境变量是否正确设置。在Windows上,你需要将Python的安装目录添加到系统的PATH环境变量中。在Linux上,你需要确保Python解释器的路径正确添加到PATH环境变量中。如果

java - 同步 : Threads execute two critical sections in same order

我有以下类型的代码:synchronizedblock1{//onlyonethreadintheblock}{lotofcodewheresynchronizationnotnecessary}synchronizedblock2{//onlyonethreadintheblock.//Allthethreadsthatexecutedblock1beforethisthreadshouldhavealreadyexecutedthisblock.}每个线程首先以相同的顺序执行block1、非同步块(synchronizedblock)和block2。如果线程T1在线程T2之前执行b

java - 寻找 java.net.SocketException : No buffer space available

嗨,我有一个非常难看的问题:java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?)它是客户端-服务器应用程序。客户端是WindowsXPSP232b,两block网卡coreduo。Java1.6。u7。应用程序为本地通信打开了几个服务器套接字,并为rmi到jboss服务器打开了几个客户端套接字。几小时/几天后!我无法打开任何新的客户端套接字来与服务器进行通信。服务器套接字仍然有效。Windowsnetstat显示130到150个连接。手动尝试时,我在~3500个连接后耗尽了缓冲区!我试过:检查我们使用的每个套接字,我们也将其关闭。在后台运行nets

java - Thread.isInterrupted 不起作用,Thread.interrupted 起作用

下面的程序演示了这个问题(最新的JVM等等):publicstaticvoidmain(String[]args)throwsInterruptedException{//ifthisistrue,bothinterruptedandisInterruptedworkfinalbooleanwithPrint=false;//decidewhethertouseisInterruptedorinterrupted.//ifthisistrue,theprogramneverterminates.finalbooleanuseIsInterrupted=true;ExecutorServ

java - Spring @PreDestroy : No logging because Logback stops too soon

在我的项目中,我使用Logback作为日志工具。我有以下类(class)@ComponentclassTest{@PreDestroypublicvoiddestroy(){try{...}catch(Exceptione){LoggerFactory.getLogger(getClass()).error(e.getLocalizedMessage(),e);}}}现在,我取消部署servlet。发生异常时,Logback不会打印消息和堆栈跟踪。这是因为在Spring调用destroy()之前,Logback正在清理。取消部署servlet时,这是第一行(也是最后一行)日志行:15:

java - Thread::yield 与 Thread::onSpinWait

好吧,标题基本上说明了一切,还有一点我真的很想知道什么时候使用它们。它可能很简单——我已经阅读了它们的文档,但仍然看不出它们的区别。有像this这样的答案这里基本上说:Yieldingalsowasusefulforbusywaiting...我不太同意他们的观点,原因很简单,ForkJoinPool在内部使用了Thread::yield,这是jdk世界中最近才添加的。真正困扰我的是在jdk中也有这样的用法(StampledLock::tryDecReaderOverflow):elseif((LockSupport.nextSecondarySeed()&OVERFLOW_YIELD

java - JSch 中 config.put ("StrictHostKeyChecking", "no") 的用途是什么

java.util.Propertiesconfig=newjava.util.Properties();config.put("StrictHostKeyChecking","no");session.setConfig(config);在上面的代码中,为什么我们需要在通过JSchAPI连接到SFTP时将StrictHostKeyChecking值设置为no? 最佳答案 实际上你不应该设置它。这样做会失去很多SSH/SFTP安全性。该选项告诉JSchSSH/SFTP库不要验证SSH/SFTP服务器的公钥。你容易受到man-in-t