草庐IT

thread-local

全部标签

java - 通过扩展 Thread 类或实现 Runnable 创建线程哪个更可取?

这个问题在这里已经有了答案:"implementsRunnable"vs"extendsThread"inJava(43个回答)关闭9年前。我想知道通过扩展线程类或通过实现Runnable接口(interface)创建线程哪个更可取。为什么?谢谢..

java - DLS_DEAD_LOCAL_STORE SuppressWarnings FindBugs 误报

我正在尝试消除DLS_DEAD_LOCAL_STORE的误报到目前为止,这是我尝试过的:@SuppressWarnings("DLS_DEAD_LOCAL_STORE")@edu.umd.cs.findbugs.annotations.SuppressWarnings("DLS_DEAD_LOCAL_STORE")(基于SuppressWarningsnotworkingonFindBugs)@edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DLS_DEAD_LOCAL_STORE",justification="请走开"

java - 如何对在执行程序服务中运行的代码片段进行单元测试,而不是等待 Thread.sleep(time)

如何对在执行程序服务中运行的代码进行单元测试?在我的情况下,publicvoidtest(){RunnableR=newRunnable(){@Overridepublicvoidrun(){executeTask1();executeTask2();}};ExecutorServiceexecutorService=Executors.newSingleThreadExecutor();executorService.submit(R);}当我进行单元测试时,我想对方法执行进行一些验证。我在执行程序服务中执行它,因为它进行一些网络操作。在我的单元测试中,我必须等到此方法执行完毕。有没

java - ThreadLocal 的使用如何降低可重用性

广受好评的书JCIP这是关于ThreadLocal用法的:ItiseasytoabuseThreadLocalbytreatingitsthreadconfinementpropertyasalicensetouseglobalvariablesorasameansofcreating"hidden"methodarguments.Thread-localvariablescandetractfromreusabilityandintroducehiddencouplingsamongclasses,andshouldthereforebeusedwithcare.线程局部变量会降低可

java - 扩展 Thread 类的主要优点是什么(或何时扩展 Thread 而不是实现 runnable)

我试图找出扩展Thread类的可能优势是什么?这是我描述的另一个问题的一部分:Java中有两种创建线程的方式从Thread类扩展实现可运行接口(interface)如解释here使用可运行接口(interface)有几个好处。我的问题是从Thread类扩展的优势是什么?我想到的唯一优点是可以从Thread类扩展,假设将其称为ThreadExtended类。然后他/她可以在ThreadExtended中添加更多功能(我不知道那可能是什么),然后当他/她想要创建一个线程时,它不是从Thread类扩展,而是从ThreadExtended扩展。使用Thread类而不是Runnable接口(in

猫头虎分享已解决Bug || Java Error: Exception in thread ‘main‘ java.lang.ClassNotFoundException ‍☕

博主猫头虎的技术世界🌟欢迎来到猫头虎的博客—探索技术的无限可能!专栏链接:🔗精选专栏:《面试题大全》—面试准备的宝典!《IDEA开发秘籍》—提升你的IDEA技能!《100天精通鸿蒙》—从Web/安卓到鸿蒙大师!《100天精通Golang(基础入门篇)》—踏入Go语言世界的第一步!《100天精通Go语言(精品VIP版)》—踏入Go语言世界的第二步!领域矩阵:🌐猫头虎技术领域矩阵:深入探索各技术领域,发现知识的交汇点。了解更多,请访问:猫头虎技术矩阵新矩阵备用链接文章目录猫头虎分享已解决Bug||JavaError:Exceptioninthread'main'java.lang.ClassNot

java - CountDownLatch 的 latch.await() 方法与 Thread.join()

我看到一个stackoverflow成员建议使用Thread.join()让一个“主”线程等待2个“任务”线程完成。我会经常做一些不同的事情(如下所示),我想知道我的方法是否有任何问题。finalCountDownLatchlatch=newCountDownLatch(myItems.length);for(Itemitem:myItems){//doStufflaunchesaThreadthatcallslatch.countDown()asit'sfinalactitem.doStuff(latch);}latch.await();//ignoringExceptionsfor

java - public 修饰符对 Java Thread 的 run() 的好处

有没有人了解JavaThread类的run()方法公开的历史?几乎所有时候,它都会被覆盖使用,因此protected修饰符会更合适吗?这仍然会将start()作为用户的公共(public)api,因此不会为用户意外调用run()的错误留下任何空间。 最佳答案 Thread实现Runnable,它定义了run()方法,所以它必须是公开的。但由于Java1.5建议使用Executorsservices而不是java.lang.Thread。执行器将要执行的工作单元(Runnable、Callable)与实际执行器解耦。(对于Thread

Java缓存线程池和线程本地

我有一个关于java和并发的问题。假设我有一个名为“a”的ThreadLocal变量。我使用CachedThreadPool来获取新线程。当线程被重用时,ThreadLocal变量'a'会发生什么变化?它保持相同的值(因为它是同一个线程)还是它开始为空(就像线程是新的一样)? 最佳答案 默认情况下,ThreadLocals与线程一起重用。如果您需要重新初始化它们,您可以通过覆盖下面提到的方法来实现:fromjavadocforjava.util.concurrent.ThreadPoolExecutorHookmethodsThis

Java : What happens if a Runnable that is being used in a thread is set to null?

假设我做了以下...//MyRunnable是我声明的一个类,它实现了Runnable。MyRunnabler=newMyRunnable();Threadt=newThread(r);t.start();r=null;像我在上面的代码片段中那样将r设置为null有什么含义? 最佳答案 让我用数字向您解释一下:1-在MyRunnabler=newMyRunnable();你正在创建类MyRunnable的新实例,它主要实现了Runnable接口(interface):2-在Threadt=newThread(r);您正在创建一个新线