草庐IT

thread_safe

全部标签

java - 请解释 Thread run() 和 start() 方法的输出

请解释以下代码的输出:如果我调用th1.run(),输出是:EXTENDSRUN>>RUNNABLERUN>>如果我调用th1.start(),输出是:RUNNABLERUN>>EXTENDSRUN>>为什么会出现这种不一致?请解释。classThreadExampleextendsThread{publicvoidrun(){System.out.println("EXTENDSRUN>>");}}classThreadExampleRunnableimplementsRunnable{publicvoidrun(){System.out.println("RUNNABLERUN>>

java - 如何避免使用 Thread.Sleep

在我下载最新版本的Netbeans之前,我从未考虑过Thread.Sleep的使用。Netbeans现在警告您不要使用Thread.Sleep。因此,我对该主题进行了一些研究,发现有人说您只需要将Thread.Sleep用于调试/测试目的,如果您在任何其他时间使用它,您的代码就会写得不好。所以我的问题是在以下情况下如何避免使用Thread.Sleep。我编写了一个与另一个应用程序交互的服务器应用程序。服务器有两个线程:处理来自套接字的数据并发回其他信息或只是简单的确认。这是主线程。启动套接字线程后,它会进入一个无限期的while循环。在这个while循环中,我检查以确保套接字线程仍然处

java.rmi.ServerException : RemoteException occurred in server thread (ClassNotFoundException) 异常

以下方法:privatevoidstartServer(){//snippetthatstartstheserveronthelocalmachinetry{RemoteMethodImplimpl=newRemoteMethodImpl();Naming.rebind("Illusive-Server",impl);}catch(Exceptionexc){JOptionPane.showMessageDialog(this,"Problemstartingtheserver","Error",JOptionPane.ERROR_MESSAGE);System.out.println

java - Thread.sleep 等待时间超过预期

以下代码:longmsBefore=System.currentTimeMillis();//Thread.currentThread().setPriority(Thread.MAX_PRIORITY);try{Thread.sleep(200);}catch(InterruptedExceptione){}System.out.println("Time:"+(System.currentTimeMillis()-msBefore));打印:Time:578Time:594Time:625Time:640Time:641Time:609Time:625Time:625Time:61

java - hibernate 异常 : Could not obtain transaction-synchronized Session for current thread

我遇到错误:Exceptioninthread"main"org.hibernate.HibernateException:Couldnotobtaintransaction-synchronizedSessionforcurrentthread主要ppService.deleteProductPart(cPartId,productId);@Service("productPartService")@OverridepublicvoiddeleteProductPart(intcPartId,intproductId){productPartDao.deleteProductPart

java - JavaFX 中的复杂并发 : using ObservableLists and Properties from multiple worker threads

我有多个工作线程和一个JavaFXGUI,它报告这些线程中发生的事情。线程之间共享的数据很多,需要可视化。所以我使用ObservableList和Property能够轻松地在JavaFX中显示数据。我制作了一个小示例应用程序来展示与我的应用程序中发生的情况类似的内容。它有2个列表,工作线程将数据从一个列表移动到另一个列表。状态字符串保持最新。完整的示例代码可以在http://codetidy.com/6569/找到(此代码会崩溃,稍后查看)这是共享的ObservableList的&属性:privateObservableListnewItems;privateObservableLis

java - Thread-Safe在java中是什么意思或者什么时候我们叫Thread-Safe?

我不理解这个概念。publicclassSomeName{publicstaticvoidmain(Stringargs[]){}}这是我的类(class)SomeName。现在这里的线程是什么。我们是否将类称为线程。当其他对象试图访问它的方法或成员时,我们是否将此类称为线程?当其他对象试图访问这个对象时,我们是否将这个类称为线程?当我们在java中将某些东西称为线程安全时,这意味着什么? 最佳答案 线程安全意味着避免一些问题。最常见也可能是最糟糕的称为线程锁。古老的类比是哲学家用餐的故事。他们非常有礼貌,不会在别人夹菜的时候伸出筷

java - 如果在同步方法中调用,thread.yield() 是否会失去对对象的锁定?

据我所知,Thread.currentThread().yield()是对线程调度程序的通知,它可以将cpu周期分配给其他具有相同优先级的线程(如果存在)。我的问题是:如果当前线程锁定某个对象并调用yield(),它会立即失去该锁定吗?当线程调度程序发现没有这样的线程分配cpu周期时,调用了yield()的线程将再次争取锁定它之前丢失的对象?我在javadoc和论坛中找不到它[http://www.coderanch.com/t/226223/java-programmer-SCJP/certification/does-sleep-yield-release-lock]有50-50答

java - 在仔细锁定但不受信任的代码上使用 Thread.stop()

我知道Thread.stop()已被弃用,并且有充分的理由:它通常不安全。但这并不意味着它从不安全……据我所知,它在我想要使用它的上下文中是安全的;而且,据我所知,我别无选择。上下文是双人策略游戏的第三方插件:国际象棋将作为工作示例。需要给第三方代码一个当前的棋盘状态,并且(比如说)10秒来决定它的移动。它可以返回它的移动并在允许的时间内终止,或者它可以随时发出其当前首选移动的信号;如果时间限制到期,它应该停止在它的轨道上,并且应该播放它最近的首选Action。编写插件以按要求正常停止不是一个选项:我需要能够使用任意不受信任的第三方插件。所以我必须有一些方法来强行终止它。这是我为锁定它

java - 如何处理org.apache.tomcat.util.threads.TaskQueue.take()热点?

我正在使用visualvm分析我在tomcat上运行的应用程序。我正在调用一种RESTWeb服务方法,它在HBase中创建5000条记录,并向客户端返回成功和失败的计数。运行visualvmCPU采样器后,我发现org.apache.tomcat.util.threads.TaskQueue.take()是热点方法。这是热点方法的屏幕截图。有谁知道这种热点的处理方法吗? 最佳答案 这不是热点。查看Selftime(CPU)列-该方法不会消耗CPU,它只是等待Condition对象。 关于