
Java如何创建主线程
我是Java技术的新手。我知道Thread在Java中只有两种创建方式扩展线程类实施可运行接口因此,这只是两种创建方法Thread。但是,当我们使用主JVM启动程序时,它启动了一个mainThread。我认为甚至JVM也必须遵循创建主要Thread方法的规则,以创建主线程JVM必须扩展Thread类或实现Runnable。public class MainThreadEx...
2024-01-10
解锁另一个线程java拥有的锁
我有一个LockManager来管理多个线程的锁。有时线程是坏男孩,我必须杀死它们并要求LockManager释放所有锁。但是,由于我无法在Java中使用ReentrantLock,因此无法解锁另一个线程拥有的锁。我被迫使用锁(不能使用信号灯,这是作业的重点)。是否有任何Java Lock实现可让我解锁其他线程拥有的锁?到目前...
2024-01-10
java内存池如何划分?
我目前正在使用jconsole监视Java应用程序。内存选项卡使你可以选择:Heap Memory UsageNon-Heap Memory UsageMemory Pool “Eden Space”Memory Pool “Survivor Space”Memory Pool “Tenured Gen”Memory Pool “Code Cache”Memory Pool “Perm Gen”它们之间有什么区别?回答:堆内存堆内存是Java VM从中为所有类实例和数组分配内存的...
2024-01-10
如何用Java命名线程池中的线程
我有一个使用该Executor框架的Java应用程序,并且我的代码看起来像这样 protected ScheduledExecutorServicescheduledExecutorService = new ScheduledThreadPoolExecutor(5)我的理解是,JVM会在内部创建5个线程的池。现在,当我在探查器中检查执行情况时,会得到类似的thread-pool2,thread-pool3信息。Some of these thread pools are created by th...
2024-01-10
Java 8并行流中的自定义线程池
是否可以为Java 8 并行流指定自定义线程池?我在任何地方都找不到。假设我有一个服务器应用程序,并且想使用并行流。但是应用程序很大并且是多线程的,所以我想将其划分。我不希望一个模块中的一个模块中的某个模块运行缓慢,而另一个模块中的任务却运行缓慢。如果不能为不同的模块使用不...
2024-01-10
javafx,从另一个线程更新ui
我有一个javafx应用程序和一个工作线程,通过javafx.concurrent.Task来实现,它执行一个漫长的过程,即压缩并上传一组文件。我已通过将任务进度连接到进度条progressProperty。 用这些信息更新UI不能从工作线程中完成,最多我可以将其添加到同步集合中。但是然后我需要一些事件来通知UI新数据可用。javaf...
2024-01-10
如何正确停止Java中的线程?
我需要一个解决方案来正确停止Java中的线程。我有IndexProcessor实现Runnable接口的类:public class IndexProcessor implements Runnable { private static final Logger LOGGER = LoggerFactory.getLogger(IndexProcessor.class); @Override public void run() { boolean run = true; ...
2024-01-10
Java线程之间共享静态变量吗?
我的高级Java课堂上有关线程的老师说了一些我不确定的东西。以下代码不一定会更新ready变量。根据他的说法,这两个线程不一定共享静态变量,特别是在每个线程(主线程与ReaderThread)在其自己的处理器上运行并且因此不共享相同的寄存器/缓存/等和一个CPU的情况下。不会更新其他。从本质上讲,他...
2024-01-10
如何找出谁在Java中创建线程?
在tomcat中,如果webapp确实停止了none守护进程线程,则无法通过shutdown.sh关闭tomcat例如:public class demo implements ServletContextListener{ public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub // yes,we can cancel timer in here,but this ...
2024-01-10
等到所有线程在Java中完成工作
我正在编写一个具有5个线程的应用程序,这些线程可以同时从Web获取一些信息,并在缓冲区类中填充5个不同的字段。当所有线程完成其工作时,我需要验证缓冲区数据并将其存储在数据库中。我该怎么做(当所有线程完成工作时收到警报)?回答:我采用的方法是使用ExecutorService管理线程池。Execut...
2024-01-10
Java如何知道其他线程是否已完成?
我有一个名为的方法的对象,该方法StartDownload()启动三个线程。每个线程执行完毕后,如何获得通知?有没有办法知道一个(或全部)线程是否已完成或仍在执行?回答:你可以通过多种方式执行此操作:在主线程中使用Thread.join()以阻塞方式等待每个线程完成,或者以轮询方式(通常不鼓励使...
2024-01-10
最终静态变量在Java中线程安全吗?
我已经阅读了很多,但是还没有找到确切的答案。我有一堂课,看起来像这样: public class Foo() { private static final HashMap<String, HashMap> sharedData; private final HashMap myRefOfInnerHashMap; static { // time-consuming initialization of sharedData ...
2024-01-10
如何检查Java中当前正在运行的线程数?
我正在寻找一种方法来查看当前正在运行的线程数首先通过Windows以编程方式回答:这将为您提供VM中的线程总数:int nbThreads = Thread.getAllStackTraces().keySet().size();现在,如果您希望当前正在执行所有线程,则可以执行以下操作:int nbRunning = 0;for (Thread t : Thread.getAllStackTraces().keySet()) { if (t.getState(...
2024-01-10
如何在Java中启动/停止/重新启动线程?
我很难找到一种方法来启动,停止和重新启动Java中的线程。具体来说,我在file中有一个类Task(当前实现Runnable)Task.java。我的主应用程序需要能够在线程上启动此任务,在需要时停止(杀死)该线程,有时还可以杀死并重新启动该线程…我的第一次尝试是与,ExecutorService但我似乎找不到办法重新启动...
2024-01-10
获取当前正在Java中运行的所有线程的列表
有什么方法可以获取当前JVM中所有正在运行的线程的列表(包括不是由我的类启动的线程)?是否还可以获取列表中所有线程的Thread和Class对象?我希望能够通过代码做到这一点。回答:要获得一个可迭代的集合:Set<Thread> threadSet = Thread.getAllStackTraces().keySet();...
2024-01-10
成本在RxJava线程切换和科特林数据类副本()操作
我的问题是关于特定操作的成本科特林数据类copy()操作和RxJavaobserveOn()线程切换的成本。成本在RxJava线程切换和科特林数据类副本()操作我有一个系统产生事件,比如说Schedulers.mainThread。事件是Kotlin数据类别。接下来是业务逻辑,最后,链条产生新的数据类别通过copy()操作。所有结果必须在Schedulers.m...
2024-01-10
Java线程完成后是否被删除
假设我使用下面的方法每隔几秒钟生成一个线程,并且每个线程大约需要一秒钟才能完成。完成的线程会被删除吗?new Thread (new myRunnableClass()).start();回答:线程完成后立即释放本机OS级线程(完成时大约释放run()),但是线程对象像其他任何对象一样存活,直到无法访问并且垃圾回收器感觉像在运行...
2024-01-10
Java-创建一个新线程
我是线程新手。我想创建一些与主线程分开工作的简单函数。但这似乎不起作用。我只想创建一个新线程,并在那里独立于主线程发生的事情做一些事情。这段代码看起来很怪异,但到目前为止,我对线程的了解还很少。你能解释一下这是怎么回事吗? public static void main(String args[]){ test z=new test();...
2024-01-10
Java从线程返回值
我有一个方法HandlerThread。值在内部被更改Thread,我想将其返回给该test()方法。有没有办法做到这一点?public void test(){ Thread uiThread = new HandlerThread("UIHandler"){ public synchronized void run(){ int value; value = 2; //To be returned to test() ...
2024-01-10
如何将参数传递给Java线程?
谁能建议我如何将参数传递给线程?另外,它如何用于匿名类?回答:你需要将构造函数中的参数传递给Runnable对象:public class MyRunnable implements Runnable { public MyRunnable(Object parameter) { // store parameter for later user } public void run() { }}然后调用它:Runnable r = new MyRunnable(param_val...
2024-01-10
如何实现真正的异步Java线程
我有一个需要执行两项操作的功能,一项功能完成得很快,而一项则需要很长时间才能运行。我希望能够将长时间运行的操作委派给线程,并且我不在乎线程何时完成,但是线程需要完成。我实现了如下所示的方法,但是由于函数在start()调用后退出,因此我的第二个操作从未完成。如何确保函数返...
2024-01-10
Java为什么创建线程据说很昂贵?
创建线程很昂贵。但是为什么价格昂贵呢?当创建Java线程使创建过程变得昂贵时,究竟发生了什么?我认为该说法是正确的,但是我只是对JVM中的线程创建机制感兴趣。线程生命周期开销。线程创建和拆除不是免费的。实际开销因平台而异,但是线程创建会花费时间,从而在请求处理中引入延迟,并...
2024-01-10
CSS中的多个图像交叉淡入淡出-无需(java)脚本
是否可以在CSS中交叉淡入淡出5张图像,而无需使用Java脚本?我发现了一个类似的问题: css3 imagecrossfade没有javascript,但是它只有CSS代码片段;我尝试过,但无法正常工作。我是CSS的新手,所以无法将上一页中提到的CSS链接到以下HTML: <div id= "crossfade"> <img class = "cone" src = "1.png" alt = "png"> <img cla...
2024-01-10
Java多线程与安全发布
在阅读了“ 实践中的Java并发 ”和“ 实践OSGI ”之后,我发现了一个非常有趣的特定主题。安全发布。以下是来自JCIP的内容:为了安全地发布对象,必须同时使对该对象的引用和该对象的状态对其他线程可见。可以通过以下方式安全地发布正确构造的对象:从静态初始化程序初始化对象引用。将对...
2024-01-10
在多个Java线程之间共享数据并获取更新的值
我想创建一个Java应用程序,在这里我们要借助访问令牌对多个用户进行rest调用。我正在为每个用户使用1个线程。我正在使用的访问令牌有效期为1个小时。一旦令牌过期,我将收到401错误,并且必须为所有线程更新令牌,然后继续。我正在考虑使用我已将其设为静态的volatile变量来更新所有线程。我的...
2024-01-10
如何在Java可执行文件.jar中启动多个主程序?
我正在写一个包含多个包的程序。每个软件包都有其自己的主程序,我希望所有人在解释器执行.jar时同时启动。这似乎是一个非常简单的问题,但是当我环顾四周时,似乎人们正在使用蚂蚁(我以前从未使用过)和其他方法。Eclipse中有没有更简单的方法来编译具有多个启动配置的.jar,更好的是,有没...
2024-01-10
Java中的线程安全多态
鉴于以下多态:public class Multiton { private static final Multiton[] instances = new Multiton[...]; private Multiton(...) { //... } public static Multiton getInstance(int which) { if(instances[which] == null) { ...
2024-01-10
Java中要运行多少个线程?
我有一个绝妙的主意,可以加快生成36个文件所需的时间:使用36个线程!不幸的是,如果我j2ssh使用36个线程/会话启动一个连接(一个连接对象),那么与每次执行每个线程相比,所有事情的滞后性更大。现在,如果我尝试创建36个新连接(36个j2ssh连接对象),则每个线程都有一个单独的服务器连接,...
2024-01-10
java游戏盒子,还能比盒子做得更多
盒子游戏各自有各自的特点,以下是几种游戏盒子的介绍:1、【360游戏盒子】360游戏盒子是360公司官方最新推出的一个提供单机游戏、网络游戏、网页游戏、在线小游戏、棋牌竞技游戏等游戏客户端。三、游窝游戏盒子游窝游戏盒子游窝游戏盒子是目前最新最好的桌面游戏宝库,电脑上的全能游戏机...
2024-01-10
java中为什么要用多线程
我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一份共享资源的时候,可能会引起冲突。...
2024-01-10
